SQL知识点总结1

作者: 负能量怪医 | 来源:发表于2020-12-27 16:33 被阅读0次

一、看书总结:

1.拼接串:concat(a,b,c)

  分组拼接串(排序):group_concat(a order by a/b asc/desc)

2.select显示内容可以直接运算

例如:select a,b,a*b as c from table

3.多条件判断

case when… then…

     when… then…

     when… then…

else… end

4. 当用select*from 表名 group by  ‘字段名1’ 将选出来的内容将按照字段1分组,其他列不尽相同,会以最前面的内容显示

5. WITH rollup中对求列的总数是OK的,但是求列的平均数有偏差,这里场景使用不是恰当

6. 分组查询,且枚举对应显示

selectsid,group_concat(cid order by cid asc) as cid,

group_concat(scoreorder by cid asc) as score

from sc group bysid;

二、leetcode 总结:

596.

(1)COUNT(student) 不能直接在 WHERE 子句中使用,这里将其重命名为 num

(2)使用 DISTINCT 防止在同一门课中学生被重复计算

196.

delete 有与 select 相似的用法

177.第N高的收入

(1)limit offset 后面只能取正整数

(2)

begin

 set数值:条件;

 return

(3)group by和order by可以连用

其他总结:

*wherehaving的区别

1where不能使用聚合函数,having可以

2where作用于查询之前,having作用于查询之后,

where 早于 group by 早于having

*四中排名函数:

(1)row_number;给数据添加递增序号

(2)rank;对数据进行间断序号排名(1,1,3)

(3)dense_rank;对数据进行连续序号排名(1,1,2)

*order  by和group by的次序

group by 比order by先执行,order by不会对group by 内部进行排序,如果group by后只有一条记录,那么order by 将无效

*group_concat可以对内容排序

即group_concat(* order  by  * asc/desc)

*轮回问题

例:查目标月份的下一个月:

mod(month(curdate()),12) + 1

对现在目标除以12取余数,当月份不足12月时,余数为月份本身,取余数(当月月份)+1;当目标月份为12月,余数为0,取余数(0)+1,可得1月;

*枚举,并取前几位:

substring_index(group_concat(column_name),',',3)

以第三个逗号为断点截取

substring_index(group_concat(column_name),',',-1)

以倒数第一个逗号为断电截取后面的内容

*表格可以连续关联

()a left join () bleft join () c

相关文章

网友评论

    本文标题:SQL知识点总结1

    本文链接:https://www.haomeiwen.com/subject/idbonktx.html