1.ROW_NUMBER()OVER()函数详解
语法格式:row_number() over(partition by 分组列 order by 排序列 desc)
在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where 、group by、 order by 的执行。
详见:https://blog.csdn.net/qq_25221835/article/details/82762416
2.Having与Where的区别
- where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。
- having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。
3.分段统计
SQL的世界中CASE语句相当于if -----else 语句
Case具有两种格式。简单Case函数和Case搜索函数
- 简单Case函数
CASE sex
WHEN ‘1’ THEN ‘男’
WHEN ‘2’ THEN ‘女’
ELSE ‘其他’ END - Case搜索函数
CASE WHEN sex = ‘1’ THEN ‘男’
WHEN sex = ‘2’ THEN ‘女’
ELSE ‘其他’ END
这两种方式,可以实现相同的功能。
详见链接:https://blog.csdn.net/qq_41722795/article/details/112004711
https://www.cnblogs.com/s313139232/p/9728559.html