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
个人小站,欢迎访问!http://klvr.xyz