ROWNUM用法
https://www.cnblogs.com/songhengchao/p/8996255.html
分析函数
https://blog.csdn.net/cc_0101/article/details/80884076
例如数据是 20 30 30 50 60
row_number() => 1 2 3 4 5
rank() => 1 2 2 4 5
dense_rank() => 1 2 2 3 4
lag(exp_str,offset,defval) over()
在表中从当前行位置向前数offset行的exp_str
exp_str :要做对比的字段(列名)
offset :偏移量
defval:默认值(数据不存在的情况下的取值)
使用group by和having。还需要记得优先顺序。where>group by>having>order by
1.select 列 from 表列表名/视图列表名 where 条件.
2.select 列 from 表列表名/视图列表名 where 条件 group by (列列表) having 条件
3.select 列 from 表列表名/视图列表名 where 条件 group by (列列表) having 条件 order by 列列表
4.select 列 from 表1 join 表2 on 表1.列1=表2.列1...join 表n on 表n.列1=表(n-1).列1 where 表1.条件 and 表2.条件...表n.条件
执行顺序:
1. 先where 后select
2. 先where 再group 再having 后select
3. 先where 再group 再having 再select 后order
4. 先join 再where 后select
Group By 后面必须要跟上非分组函数()