开窗函数(随手笔记)

sum(math) over() as sum1

以所有的行的math进行sum计算

sum(math) over(order by math)

按math排序后,把小于和等于math当前行数值的全部sum计算

sum(math) over(order by math RANGE BETWEEN unbounded preceding AND CURRENT ROW)

–按math排序后,把小于和等于math当前行数值的全部sum计算

sum(math) over(order by math ROWS BETWEEN unbounded preceding AND CURRENT ROW)

–按math排序后,把当前行和此行前面出现的行的math进行sum计算

sum(math) over(order by math RANGE BETWEEN 1 preceding AND 2 following)

按math排序后,
把所有math数值在此行math数值-1<=此行math数值<=此行math数值+2在这个范围的math进行sum计算.

sum(math) over(order by math ROWS BETWEEN 1 preceding AND 2 following)

按math排序后,把此行math+此行前一行的math+此行后两行的math进行sum计算

sum(math) over(partition by classId)

按classId分区,把同一个按classId分区分区内的math 进行sum计算

sum(math) over(partition by classId order by math)

按classId分区,按math排序后,把同一个分区内,把小于和等于math当前行数值的全部sum计算

sum(math) over(partition by classId order by math rows between 1 preceding and 2 following)

按classId分区,按math排序后,把同一个分区内,把此行math+此行前一行的math+此行后两行的math进行sum计算。

sum(math) over(partition by classId order by math RANGE between 1 preceding and 2 following)

按classId分区,按math排序后,把同一个分区内,

sum/min/max/avg/first_value/last_value/lag /() over()

RANGE 和ROWS区别是一个是数值逻辑行,一个是物理行

猜你喜欢

转载自blog.csdn.net/weixin_43859562/article/details/121615431