经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MS SQL Server » 查看文章
计总与排名SUM和RANK函数
来源:cnblogs  作者:Insus.NET  时间:2019/5/29 8:49:09  对本文有异议


准备一些数据:

 

  1. CREATE TABLE [dbo].[SalesPerformance](
  2. [ID] [int] IDENTITY(1,1) NOT NULL,
  3. [Salesman] NVARCHAR(30) NOT NULL,
  4. [OrderDate] [DATE] NULL,
  5. [Sell] DECIMAL(18,2) NULL
  6. )
  7. GO
  8.  
  9.  
  10. SELECT [Salesman],[OrderDate],[Sell] FROM [dbo].[SalesPerformance]
  11. GO
Source Code

 

  1. Salesman OrderDate Sell
  2. S0003 2019-05-12 23800.00
  3. S0008 2019-05-19 66528.00
  4. S0001 2019-05-05 35455.00
  5. S0001 2019-05-18 75220.00
  6. S0003 2019-05-17 33658.00
  7. S0041 2019-05-10 56300.00
  8. S0041 2019-05-11 41811.00
  9. S0003 2019-05-20 26309.00
  10. S0007 2019-05-02 41811.00
  11. S0022 2019-05-26 26309.00
  12. S0032 2019-05-20 20000.00
  13. S0050 2019-05-28 20000.00
Data

 

使用SUM和GROUP BY统计各个业务员的销售额:

 

  1. SELECT [Salesman] AS [业务员],MONTH([OrderDate]) AS [月份], SUM([Sell]) AS [销售量]
  2. FROM [dbo].[SalesPerformance]
  3. GROUP BY [Salesman],MONTH([OrderDate])
Source Code

 

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

 

  1. ;WITH [QuantityOfSale] AS
  2. (
  3. SELECT [Salesman] AS [业务员],MONTH([OrderDate]) AS [月份], SUM([Sell]) AS [销售量]
  4. FROM [dbo].[SalesPerformance]
  5. GROUP BY [Salesman],MONTH([OrderDate])
  6. )
  7. SELECT [业务员],[月份],[销售量],RANK() OVER( ORDER BY [销售量] DESC) [销售排名]
  8. FROM [QuantityOfSale]
Source Code

 

原文链接:http://www.cnblogs.com/insus/p/10938336.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号