【SQL】排名

问题描述:

 

分析:

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

计算排名相当于算前面有多少个大于他,上例若排名是 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】排名

 

【SQL】排名

上一篇:SQL基础复习05--数据控制SQL语句


下一篇:达梦7数据库 平移某时间段数据