SQL取得排名语法

 

今天有 5个业务 10月份的业绩是

:15

:20

:30

:10

:15

老板要找出业绩前3名的业务

一般直觉的想法是

 

select top 3 业务名称,金额 from 业绩 order by 金额 desc

会得到

 30

20

15

也有可能会得到

 30

20

 15

 

 

但是今天有可能有n个第3

所以用 top 3 应该不符合需求

 

如果改用

select top 3 WITH TIES  业务名称,金额 from 业绩 order by 金额 desc

会得到4笔数据

 30

20

 15

15

 

WITH TIES 就是用在这个时候 ,需撘配 TOP n 还有 ORDER BY

会让 ORDER BY 最后一笔的结果一样的DATA也出来

 

以上面的例子

因为 ORDER BY 金额  desc

所以最后一笔 15 ,所以金额=15的也都会出现

而产生 top 3 但是会有 4笔数据的结果

------------------------------------------

进阶版再加上排名

select top 3 WITH TIES  业务名称,金额 ,

Rank() over(Order By 金额) as 排名

from 业绩 order by 金额

结果

 30 1

20 2

 15 3

15 3

 

 

发布了22 篇原创文章 · 获赞 2 · 访问量 5万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览