首页 > 数据库技术 > 详细

【SQL】排名

时间:2020-05-25 17:58:16      阅读:68      评论:0      收藏:0      [点我收藏+]

问题描述:

 

分析:

一、使用排序函数
 
二、计算

计算排名相当于算前面有多少个大于他,上例若排名是 1 2 2 4 5则直接计算有几个大于他加一就可(本身最高的是第一名,零人大于他)

若是题目要求的排名,则说明重复的都是一个排名,不占用其他排名,则要加一个去重

解题

1、

select emp_no, salary, DENSE_RANK() OVER(order by [salary]desc) as rank
from salaries
where to_date=9999-01-01
order by salary desc, emp_no

2、

select a.emp_no,a.salary,(select count(distinct b.salary)from salaries b
where b.to_date=9999-01-01 and b.salary>a.salary)+1 as rank
from salaries a where a.to_date=9999-01-01
order by salary desc,emp_no

 

技术分享图片

 

【SQL】排名

原文:https://www.cnblogs.com/fuj905/p/12958072.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!