sql server 开窗函数统计函数
时间: 2024-08-14 16:04:22 浏览: 75
SQL Server 中的开窗函数(Window Functions)是一种特殊的聚合函数,它们会为每一行数据计算出窗口范围内的值,而不仅仅是一组数据的整体结果。这种函数允许你在每个分组之上添加额外的信息,通常用于排名、分组滚动计数、累计总和等场景。
一些常见的SQL Server开窗函数包括:
1. ROW_NUMBER():为每行分配一个唯一的序号,常用于分页或按照某个条件排序后的唯一标识。
2. RANK() 和 DENSE_RANK():类似ROW_NUMBER,但会考虑所有行,如果有相同的值,RANK会跳过空位,DENSE_RANK则连续编号。
3. LEAD() 和 LAG():前一/后续元素函数,分别返回指定位置的当前行前面或后面的元素。
4. SUM()、COUNT() 等:可以与其他窗口函数结合,如COUNT(*) OVER (PARTITION BY ...) 计算每个分区的行数。
例如,如果你想查看每个部门员工的平均工资,以及他们的排名,你可以这样做:
```sql
SELECT
Department,
Salary,
AVG(Salary) OVER (PARTITION BY Department) AS Average_Salary,
RANK() OVER (PARTITION BY Department ORDER BY Salary DESC) AS Rank
FROM Employees;
```
阅读全文