窗口函数ROW_NUMBER、RANK、DENSE_RANK

在 SQL 中,窗口函数是一种特殊的函数,它可以在结果集的特定窗口或分区上计算聚合、排名、行数和其他类似的分析操作。下面是一些常见的窗口函数:

1. ROW_NUMBER:为结果集的每一行分配一个唯一的整数值。

select 
Score,
ROW_NUMBER() over(order by Score DESC)
as Rank from Scores

2. RANK:为结果集的每一行分配一个唯一的排名(相同值具有相同的排名,下一个值的排名将递增)。

select 
Score,
rank() over(order by Score DESC)
as Rank from Scores

3. DENSE_RANK:为结果集的每一行分配一个唯一的密集排名(相同值具有相同的排名,下一个值的排名可能会跳过)。

select 
Score,
DENSE_RANK() over(order by Score DESC)
as Rank from Scores

 

4. NTILE:将结果集划分为指定数量的相等大小的桶,然后为每个桶分配一个标识号。

SELECT column1, NTILE(4) OVER (ORDER BY column1) AS bucket
FROM your_table;

5. SUM, AVG, MIN, MAX:这些聚合函数可以与窗口函数一起使用,在特定的窗口或分区上计算聚合值。

SELECT column1, SUM(column2) OVER (PARTITION BY column3) AS total
FROM your_table;

6. LEAD 和 LAG:LEAD 函数用于获取当前行后面的指定偏移量处的值,LAG 函数用于获取当前行前面的指定偏移量处的值。

SELECT column1, LEAD(column1, 1) OVER (ORDER BY column1) AS next_value
FROM your_table;

7.FIRST_VALUE():计算结果集中指定列的第一个值。

8.LAST_VALUE():计算结果集中指定列的最后一个非 NULL 值。

9.PERCENT_RANK():计算结果集中每行的百分数排名。

10.CUME_DIST():计算结果集中每行的累积分布值。

以上是一些常见的窗口函数示例,它们提供了在查询中进行数据分析的强大功能。窗口函数可以根据业务需求进行灵活的应用,使我们能够根据特定的窗口和排序规则计算出有用的统计信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值