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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值