SQL开窗函数
Posted tuzinn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL开窗函数相关的知识,希望对你有一定的参考价值。
参考链接:https://b23.tv/Ktb0oL
1.为什么用开窗函数(什么情况用)
- eg:假设一个部门有很多人,又有很多部门,想求每个部门的平均工资
- 一般情况下,group by部门,只会得到部门名和最后的平均工资
- 利用开窗函数,还可以另外显示每个部门的人员信息
2.基本语法
# function:聚合函数
# expression:你想要的列(工资)
function (expression)
OVER (PARTITION BY column
ORDER BY column ASC/DESC
ROWS [···])
- OVER():必须有,其余的不是必须的
- eg:计算累计工资
- 姓名(name)、部门(department)、小组(group)、工资(salary)、入职日期(join_date)
- PARTITION(分割) BY
- 每个部门的 - PARTITION BY department
- 每个部门及小组的 - PARTITION BY department,group
- ROWS
- 默认:ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
- (unbounded preceding and current row 所有前面的行和现在的行)
- ROWS BETWEEN (x 是一个数值) …… AND ……
- UNBOUNDED PRECEDING(前面所有行)
- x PRECEDING (前x行)
- x FOLLOWING (后x行)
- CURRENT ROW (当前行)
- function (expression)
- avg(column)
- count(*) / count(column)
- dense_rank( )
- lag(column [, offset ]) / lead(……)
- max(column) , min(column), median(column)
以上是关于SQL开窗函数的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server中的开窗函数是啥?
SQL SEVER 开窗函数总结
sql 开窗函数
SQL SERVER开窗函数
开窗函数
T-SQL:开窗函数