当前位置: 移动技术网 > IT编程>数据库>MSSQL > 计总与排名SUM和RANK函数

计总与排名SUM和RANK函数

2019年05月29日  | 移动技术网IT编程  | 我要评论

热火对老鹰,学园禁区,2018寒假


准备一些数据:

 

create table [dbo].[salesperformance](
    [id] [int] identity(1,1) not null,
    [salesman] nvarchar(30) not null,
    [orderdate] [date] null,
    [sell]    decimal(18,2) null
 )
go


select [salesman],[orderdate],[sell] from [dbo].[salesperformance]
go

 

salesman    orderdate    sell
s0003    2019-05-12    23800.00
s0008    2019-05-19    66528.00
s0001    2019-05-05    35455.00
s0001    2019-05-18    75220.00
s0003    2019-05-17    33658.00
s0041    2019-05-10    56300.00
s0041    2019-05-11    41811.00
s0003    2019-05-20    26309.00
s0007    2019-05-02    41811.00
s0022    2019-05-26    26309.00
s0032    2019-05-20    20000.00
s0050    2019-05-28    20000.00

 

使用sum和group by统计各个业务员的销售额:

 

select [salesman] as [业务员],month([orderdate]) as [月份], sum([sell]) as [销售量]
from [dbo].[salesperformance]
group by [salesman],month([orderdate])

 

然后使用rank进行排名,看看谁是销售冠军,谁与谁同级:

 

;with [quantityofsale] as
(
    select [salesman] as [业务员],month([orderdate]) as [月份], sum([sell]) as [销售量]
    from [dbo].[salesperformance]
    group by [salesman],month([orderdate])
)

select [业务员],[月份],[销售量],rank() over( order by [销售量] desc) [销售排名]
from [quantityofsale]

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网