sql语句取id不连续的内容
SQL高级查询

1. SQL(高级查询)1.1. 子查询1.1.1. 子查询在WHERE子句中在SELECT查询中,在WHERE查询条件中的限制条件不是一个确定的值,而是来自于另外一个查询的结果。
为了给查询提供数据而首先执行的查询语句叫做子查询。
子查询:嵌入在其它SQL语句中的SELECT语句,大部分时候出现在WHERE子句中。
子查询嵌入的语句称作主查询或父查询。
主查询可以是SELECT语句,也可以是其它类型的语句比如DML或DDL语句。
根据返回结果的不同,子查询可分为单行子查询、多行子查询及多列子查询。
多行多列或单行多列(没有什么实际意义)多行多列子查询通常用于建立在二次查询,常出现在FROM子句中图-1 子查询例如查找和SCOTT同职位的员工:1.SELECT e.ename, e.job2.FROM emp e3.WHERE e.job =4.(SELECT job FROM emp WHERE ename ='SCOTT');查找薪水比整个机构平均薪水高的员工:1.SELECT deptno, ename, sal2.FROM emp e3.WHERE sal >(SELECT AVG(sal) FROM emp;如果子查询返回多行,主查询中要使用多行比较操作符,包括IN、ALL、ANY。
其中ALL和ANY 不能单独使用,需要配合单行比较操作符>、>=、<、<=一起使用。
例如查询出部门中有SALESMAN但职位不是SALESMAN的员工的信息:EXISTS:后面跟着子查询判断子查询返回是否存在,如果存在就输出,不存在就忽略这一条;1.SELECT empno, ename, job, sal, deptno2.FROM emp3.WHERE deptno IN4.(SELECT deptno FROM emp WHERE job ='SALESMAN')5.AND job <>'SALESMAN';在子查询中需要引用到主查询的字段数据,使用EXIST关键字。
SQL记录-PLSQL-EXITCONTINUEGOTO

SQL记录-PLSQL-EXITCONTINUEGOTOPL/SQL EXIT语句在PL/SQL编程语⾔中,EXIT语句有以下两种⽤法:当循环中遇到EXIT语句循环⽴即终⽌,程序控制继续下⼀个循环语句后⾯。
如果使⽤嵌套循环(即⼀个循环内的另⼀个循环),EXIT指令将停⽌最内层循环的执⾏,并开始执⾏的下⼀⾏代码的程序段之后。
语法:在PL/SQL EXIT语句的语法如下:EXIT;流程图:例如:DECLAREa number(2) := 10;BEGIN-- while loop executionWHILE a < 20 LOOPdbms_output.put_line ('value of a: ' || a);a := a + 1;IF a > 15 THEN-- terminate the loop using the exit statementEXIT;END IF;END LOOP;END;/当上述代码在SQL提⽰符执⾏时,它产⽣了以下结果:value of a: 10value of a: 11value of a: 12value of a: 13value of a: 14value of a: 15PL/SQL procedure successfully completed.EXIT WHEN 语句在EXIT-WHEN语句允许的条件下,在WHEN⼦句进⾏评估计算。
如果条件为真,循环完成并控制⽴即传递到END LOOP语句。
以下是EXIT WHEN语句的两个重要⽅⾯:直到条件为true,EXIT-WHEN语句就像⼀个空语句,除了评估计算条件,并不会终⽌循环。
循环内部的语句必须更改条件的值。
⽰例:PL/ SQL EXIT WHEN语句的语法如下:EXIT WHEN condition;EXIT WHEN语句使⽤EXIT语句条件代替条件语句 if-then 退出⼀样⽰例:DECLAREa number(2) := 10;BEGIN-- while loop executionWHILE a < 20 LOOPdbms_output.put_line ('value of a: ' || a);a := a + 1;-- terminate the loop using the exit when statementEXIT WHEN a > 15;END LOOP;END;/当上述代码在SQL提⽰符执⾏时,它产⽣了以下结果:value of a: 10value of a: 11value of a: 12value of a: 13value of a: 14value of a: 15PL/SQL procedure successfully completed.PL/SQL CONTINUE语句CONTINUE语句使循环跳过其⾝的其余部分,并⽴即重新测试其使⽤条件重申之前。
四种常见的索引类型

四种常见的索引类型主键索引:数据记录⾥⾯不能有 null,数据内容不能重复,在⼀张表⾥⾯不能有多个主键索引。
普通索引:使⽤字段关键字建⽴的索引,主要是提⾼查询速度唯⼀索引:字段数据是唯⼀的,数据内容⾥⾯能否为 null,在⼀张表⾥⾯,是可以添加多个唯⼀索引。
全⽂索引:在⽐较⽼的版本中,只有 myisam 引擎⽀持全⽂索引,在 innodb5.6后引擎也⽀持全⽂索引,在 mysql 中全⽂索引不⽀持中⽂。
我们⼀般使⽤ sphinx 集合coreseek 来实现中⽂的全⽂索引。
什么是索引?Mysql⽬前主要的⼏种索引类型⼀、索引MySQL索引的建⽴对于MySQL的⾼效运⾏是很重要的,索引可以⼤⼤提⾼MySQL的检索速度。
打个⽐⽅,如果合理的设计且使⽤索引的MySQL是⼀辆兰博基尼的话,那么没有设计和使⽤索引的MySQL就是⼀个⼈⼒三轮车。
索引分单列索引和组合索引。
单列索引,即⼀个索引只包含单个列,⼀个表可以有多个单列索引,但这不是组合索引。
组合索引,即⼀个索引包含多个列。
创建索引时,你需要确保该索引是应⽤在 SQL 查询语句的条件(⼀般作为 WHERE ⼦句的条件)。
实际上,索引也是⼀张表,该表保存了主键与索引字段,并指向实体表的记录。
上⾯都在说使⽤索引的好处,但过多的使⽤索引将会造成滥⽤。
因此索引也会有它的缺点:虽然索引⼤⼤提⾼了查询速度,同时却会降低更新表的速度,如对表进⾏INSERT、UPDATE和DELETE。
因为更新表时,MySQL不仅要保存数据,还要保存⼀下索引⽂件。
建⽴索引会占⽤磁盘空间的索引⽂件。
⼆、索引类型Mysql⽬前主要有以下⼏种索引类型:FULLTEXT,HASH,BTREE,RTREE。
1. FULLTEXT即为全⽂索引,⽬前只有MyISAM引擎⽀持。
其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使⽤,不过⽬前只有CHAR、VARCHAR ,TEXT 列上可以创建全⽂索引。
CDA数据分析师 LEVEL 1模拟题

21、如果多元线性回归模型中残差不等于 0,而是一个常数,那么( ) A. 这个常数应该包含在常数项 B. 应该去除常数项 C. 应该去除残差项 D. 模型有效 答案:A 分析:如果残差的期望不等于 0,而等于其他的某个常数,那么这个常数就应该 出现在多元线性回归的常数项内。
22、分析师小 A 在对他的模型进行评估时,更倾向选用调整 R²作为指标。因为
7、希望将不同数据表中的数据进行关联的时候,我们可以采用表连接。以下不 是 sql 表连接方式的一个是( ) A. right join B. left join C. union D. all join 答案:D 分析:连接后保留两张表全部信息应使用 full join。
8、以下哪个数据库可以使用 row number over partition by 函数( ) A. MySql B. SQL Server C. Oracle D. SAS 答案:C 分析:Oracle 包含了非常多的高级函数,row number over partition by 就是其中之 一。这个函数在 Hive 和 Impala 上也可以使用。
18、使用余弦相似度时,结果等于 1 表示两个向量( ) A. 完全相同 B. 完全相反 C. 完全相关 D. 不确定 答案:A 分析:余弦相似度表示 a、b 两个向量之间夹角的余弦值。等于 1 时,表明两个 向量方向完全相同,越接近 1,表明两个向量越相似。
第 6 页,共 27 页
版权所有,侵权必究
15、以下哪个聚类方法又叫快速聚类法( ) A. K-means 聚类法 B. 层次聚类法 C. 系统聚类法 D. 两步聚类法 答案:A 分析:K-means 聚类法计算量非常小,因此又得名快速聚类法。
第 5 页,共 27 页
Sql面试题大全

Sql常见面试题受用了1.用一条SQL 语句查询出每门课都大于80 分的学生姓名name kecheng fenshu张三语文 81张三数学 75李四语文 76李四数学 90王五语文 81王五数学 100王五英语 90A: select distinct name from table where name not in (select distinct name from table where fenshu<=80)select name from table group by name having min(fenshu)>802.学生表如下:自动编号学号姓名课程编号课程名称分数1 2005001 张三 0001 数学 692 2005002 李四 0001 数学 893 2005001 张三 0001 数学 69删除除了自动编号不同, 其他都相同的学生冗余信息A: delete tablename where 自动编号 not in(select min( 自动编号) from tablename group by 学号, 姓名, 课程编号, 课程名称, 分数)3.一个叫team 的表,里面只有一个字段name, 一共有4 条纪录,分别是a,b,c,d, 对应四个球对,现在四个球对进行比赛,用一条sql 语句显示所有可能的比赛组合.你先按你自己的想法做一下,看结果有我的这个简单吗?答:select , from team a, team bwhere < 4.请用SQL 语句实现:从TestDB 数据表中查询出所有月份的发生额都比101 科目相应月份的发生额高的科目。
请注意:TestDB 中有很多科目,都有1 -12 月份的发生额。
AccID :科目代码,Occmonth :发生额月份,DebitOccur :发生额。
数据库名:JcyAudit ,数据集:Select * from TestDB答:select a.*from TestDB a,(select Occmonth,max(DebitOccur) Debit101ccur from TestDB where AccID='101' group by Occmonth) bwhere a.Occmonth=b.Occmonth and a.DebitOccur>b.Debit101ccur********************************************************************* ***************5.面试题:怎么把这样一个表儿year month amount1991 1 1.11991 2 1.21991 3 1.31991 4 1.41992 1 2.11992 2 2.21992 3 2.31992 4 2.4查成这样一个结果year m1 m2 m3 m41991 1.1 1.2 1.3 1.41992 2.1 2.2 2.3 2.4答案一、select year,(select amount from aaa m where month=1 and m.year=aaa.year) as m1, (select amount from aaa m where month=2 and m.year=aaa.year) as m2, (select amount from aaa m where month=3 and m.year=aaa.year) as m3, (select amount from aaa m where month=4 and m.year=aaa.year) as m4 from aaa group by year********************************************************************* **********6.说明:复制表( 只复制结构, 源表名:a 新表名:b)SQL: select * into b from a where 1<>1 (where1=1,拷贝表结构和数据内容)ORACLE:create table bAsSelect * from a where 1=2[<>(不等于)(SQL Server Compact)比较两个表达式。
sql查询数据库表中重复记录方法

sql查询数据库表中重复记录⽅法1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断代码如下:select*from peoplewhere peopleId in (select peopleId from people group by peopleId having count(peopleId) >1)2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最⼩的记录代码如下:delete from peoplewhere peopleId in (select peopleId from people group by peopleId having count(peopleId) >1)and rowid not in (select min(rowid) from people group by peopleId having count(peopleId)>1)3、查找表中多余的重复记录(多个字段)代码如下:select*from vitae awhere (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq havingcount(*) >1)4、删除表中多余的重复记录(多个字段),只留有rowid最⼩的记录代码如下:delete from vitae awhere (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq havingcount(*) >1)and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)注意:rowid是表中可以做唯⼀标识的数据列。
大数据CDA考试(习题卷1)

大数据CDA考试(习题卷1)第1部分:单项选择题,共47题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]在因子分析中,为了帮助解释因子,我们可以使用( )A)因子得分B)因子负载C)因子旋转D)主成分分析答案:C解析:在进行因子分析时,我们可以通过因子旋转来使得最终得到的因子更具有解释性。
2.[单选题]关于Kafka 磁盘容量不足的告警,对于可能的原因以下分析不正确的是?A)业务规划不合理导致数据分配不 均,使部分磁盘达到使用率上限B)数据保存时间配置过长,数据累计 达到磁盘使用率上限C)Broker节点故障导致D)用于存储Kafka 数据的磁盘配置 (如磁盘数目磁盘大小等),无法满 足当前业务数据流量,导致磁盘使 用率达到上限答案:C解析:3.[单选题]基于规则的分类器有Aprior、随机森林,还有()。
A)C4.5B)KNNC)Naive BayesD)ANN答案:A解析:4.[单选题]“将总体中的所有单位( )按一定顺序排列,在规定的范围内随机地抽取一个单位作为初始单位,然后按事先规定好的规则确定其它样本单位”,这种抽样方法称为( )A)多阶段抽样(systematicB)分层随机抽样(stratifiedC)集群抽样(clusterD)系统抽样(systematic答案:D解析:根据定义。
5.[单选题]参照以下信息选择能够正确创建orderinfo表的语句A)createB)createC)createD)create答案:A解析:本题考查SQL语句中建表、字段约束条件以及字段数据类型相关知识。
其中建表语句结构为create table 表名(…),字段的约束条件为非空=not null、唯一=unique、主键=primary key。
定长字符串类型为char,可变长字符串类型为varchar,小数类型通常使用float,但“金额”这类对数据精度要求较高的情况,应考虑使用decimal,整数类型为int。
sql 查询拼接字段

sql 查询拼接字段摘要:1.SQL 查询简介2.拼接字段的方法3.实际操作示例正文:【1.SQL 查询简介】SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的编程语言。
它可以执行查询、插入、更新和删除等数据库操作。
在SQL 中,查询语句是最常用的一种语句,它可以从数据库表中检索所需的数据。
【2.拼接字段的方法】在SQL 查询中,如果想要将多个字段进行拼接,可以使用字符串连接符“||”来实现。
以下是一个简单的示例:假设有一个名为“students”的表,包含以下字段:id(学号)、name (姓名)、age(年龄)和gender(性别)。
想要查询所有学生的姓名和年龄,可以使用以下SQL 语句:```sqlSELECT name || " " || age AS new_name FROM students;```这条语句将姓名(name)和年龄(age)字段进行拼接,并在拼接后添加一个空格,然后将拼接后的结果命名为“new_name”。
【3.实际操作示例】假设现在有一个名为“orders”的表,包含以下字段:id(订单号)、customer_id(客户ID)、order_date(订单日期)和total_amount(订单总金额)。
现在需要查询所有订单的订单号、客户ID 和订单日期,可以使用以下SQL 语句:```sqlSELECT id || " " || customer_id || " " || order_date AS new_order FROM orders;```这条语句将订单号(id)、客户ID(customer_id)和订单日期(order_date)字段进行拼接,并在拼接后添加一个空格,然后将拼接后的结果命名为“new_order”。
通过以上示例,我们可以看到如何在SQL 查询中使用拼接字段的方法。