ORCALE 开窗函数 over

本文详细介绍了SQL中用于排序的三个重要函数:row_number、rank和dense_rank。row_number为每个记录分配唯一的序列号,即使有重复值也会递增。rank函数在遇到相同排名时不会为后续记录分配新的排名,导致空缺。而dense_rank函数则确保没有排名空缺,当有并列情况时,后续的排名会依次顺延。通过具体的SQL查询示例,展示了这三个函数在窗口函数中的应用和区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • row_number

        得到排序结果的序号,对重复值进行顺延。
        select JG,GL,row_number() over (partition by JG order by GL) as row_n from T_BIS_YH;

  • rank

得到排序结果的排名号,如果有两个第二名的话,就不会有第三名,有三个第二名就不会有第四名。

select JG,GL,rank() over (partition by JG order by GL) as rank from T_BIS_YH;

 

  • dense_rank  

        每个人只有一种排名,如果出现两个两个并列第二的情况,这时候排在这两个第二名后面的人是第三名。

        select JG,GL,dense_rank() over (partition by JG order by GL) as dense from T_BIS_YH;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值