SQL窗口函数
可以用于计算相对于某一行的聚合值,窗口函数通常与OVER
子句一起使用
常见的一些窗口函数:
ROW_NUMBER()
- 为结果集中的每一行分配一个唯一的整数值,通常用于给结果集中的行编号。
SELECT column1, column2, ROW_NUMBER() OVER (ORDER BY column1) AS row_num FROM table_name;
RANK()
- 计算结果集中每一行的排名,相同值将获得相同的排名,下一个值将跳过相应的排名数。
SELECT column1, column2, RANK() OVER (ORDER BY column1) AS rank FROM table_name;
DENSE_RANK()
- 类似于RANK(),但不会跳过排名数,即相同值将获得相同的排名,下一个值将使用下一个可用的排名数。
SELECT column1, column2, DENSE_RANK() OVER (ORDER BY column1) AS dense_rank FROM table_name;
除此之外还有
SUM()
、AVG()
、COUNT()
等聚合函数
FIRST_VALUE()
和LAST_VALUE()