ROW_NUMBER()函数的使用

今天在做一道用SQL排名排序的类型问题时发现一个既好用又容易理解的SQL函数

ROW_NUMBER()

ROW_NUMBER() OVER(PARTITION BY SC.corse_id ORDER BY SC.number) RN


PARTITION BY后面跟需要分组的字段 该参数可选
ORDER BY 则是针对这个子句的排序 该参数必须的

比如:查询各科成绩前三名的记录

SELECT * FROM (
  SELECT SC.student_id SNO,
  SC.corse_id CNO,
  SC.number SCORE,
  ROW_NUMBER() OVER(PARTITION BY SC.corse_id ORDER BY SC.number DESC) RN

FROM score SC) A
  WHERE A.RN <= 3 -- 取 rn的前三个 (前三名)

 

 

 

具体使用详情可参考:https://blog.csdn.net/Zhuxxxxx/article/details/123795141

__EOF__

本文作者流川枫
本文链接https://www.cnblogs.com/xxks/p/17282658.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   史可轩  阅读(97)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
3 4
点击右上角即可分享
微信分享提示