
目录
[一. 窗口分析函数](#一. 窗口分析函数)
[(a)first value](#(a)first value)
[(b)last value](#(b)last value)
一. 窗口分析函数
窗口分析函数主要用来做数据统计分析,属于OLAP方式。OLAP联机分析处理和OLTP联机事务处理是两种常见的数据库处理方式,通常分析师更喜爱OLAP(分析),开发者更关注的是OLTP(事务)。
窗口分析函数可以计算一定范围内、一定值域内、或者一段时间内的累积和以及移动平均值等,可以方便的实现复杂的数据统计分析需求。
窗口分析函数包括:
前后函数:lag,lead
头尾函数:first-val,last val
排序函数:rank,dense rank,row number
分布函数:percent_rank,cume_dist
聚合函数:sum,count,min,max,avg
其它函数:ntile
1)前后函数
(a)lag
(b)lead

2)头尾函数
(a)first value

(b)last value

3)排序函数
(a)row_number

(b)rank

(c)dense_rank

(d)三者之间对比

row_number()不区分是否并列:row_number函数为每一行分配唯一的行号,而rank函数和dense_rank函数在处理具有相同排序值的行时有所不同。
**rank()会产生序号相同的记录,产生序号间隔,dense_rank()不产生序号间隔:**rank函数会跳过下一个排名,而dense_rank函数会紧随其后。选择使用哪个函数取决于具体的需求和对重复值的处理方式。
4)分布函数
用于计算当前行在排序结果中的累积分布比例。
(a)cume_dist

(b)percent_rank

(c)两者之间对比

5)其它函数
(a)ntile

Bye!