准备一些数据:

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

Source Code

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

Data

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

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

Source Code

然后使用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]

Source Code

计总与排名SUM和RANK函数的更多相关文章

  1. sql server 中用于排名的三个函数 row_number() ,RANK() 和 DENSE_RANK()

    row_number()  ,RANK() 和  DENSE_RANK()  三个配合over()  使用排名 只是只是计算方式不一样,语法基本一样 语法: ROW_NUMBER() OVER (OR ...

  2. SQL Server排名或排序的函数

    SQL Server获得排名或排序的函数有如下几种: 1.Rank():在结果集中每一条记录所在的排名位置,但排名可能不连续,例如:若同一组内有两个第一名,则该组内下一个名次直接跳至第三名   sel ...

  3. oracle 分组中排序(rank函数)

    需求: 查询每个供应商在每个类型产品销售的top50中有多少 分析: 1.查询,以指定字段(供应商.产品类型)分组,取每个分组的前50行,查看每个供应商的数量 2.使用rank函数给每个供应商.每个类 ...

  4. MySQL之实现Oracle中的rank()函数的功能

      假设表格为student, 数据如下:   我们要在MySQL中实现Oracle中的rank()函数功能,即组内排序,具体来说: 就是对student表中按照课程(course)对学生(name) ...

  5. Oracle查询部门工资最高员工的两种方法 1、MAX()函数 2、RANK()函数

      本文以SCOTT用户下初始的EMP表为参考.代码可直接使用.   查询EMP表结构的语句如下,[代码1]: DESC EMP;   EMP表结构如下:[结果1]: SQL> DESC EMP ...

  6. Mysql查询指定用户并列排名 类似rank函数

    SELECT total.* FROM ( SELECT obj.uid, obj.score, CASE WHEN @rowtotal = obj.score THEN @rownum WHEN @ ...

  7. rank()函数的使用

    排序: ---rank()over(order by 列名 排序)的结果是不连续的,如果有4个人,其中有3个是并列第1名,那么最后的排序结果结果如:1 1 1 4select scoreid, stu ...

  8. 查找数据库中重复的值的数据,having的使用,count(1),sum等聚会函数

    通过having代替where来使用count(1),sum()等函数.譬如如下数据id value1 21 32 33 53 6 可以写个语句统计value的分组 在这里,可以省略前面的sum(va ...

  9. sql - sum() 和 count() 函数的区别

    对sql一直都是蜻蜓点水,突然也觉得对这两个函数的区别有点朦胧,查了一下,在这里说一下: sum():主要用于累加求和. count():主要用于行(记录)的统计.

随机推荐

  1. about gnu bash shell

    1 定义字符串不需要引号 var=NONE echo $var ==>NONE 2 支持基本的整数计算 a=1 b=2 echo $((a+b)) ==>3 必须用$(()),双括号的形式 ...

  2. UIWebview加载H5界面侧滑返回上一级

    一.UIWebview的发现 问题发现:当UIWebview王深层次点击的时候,返回时需要webView执行goBack方法一级一级返回,这样看到的webView只是在该界面执行刷新,并看不到类似iO ...

  3. Flask:基本结构

    python有两个比较出名的网络框架,一个是django,一个是flask. 之前的django文章里面介绍了django的各种用法,这个系列开始介绍flask的用法.相比与django,flask更 ...

  4. ExtJS教程(5)---Ext.data.Model之高级应用

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/jaune161/article/details/37391399 1.Model的数据验证 这里借助 ...

  5. ABAP-创建客户

      CALL METHOD CMD_EI_API=>MAINTAIN_BAPI FUNCTION Z_CS_RFC_OA002 . *"------------------------ ...

  6. Android WiFi系统【转】

    本文转载自:http://blog.csdn.net/gabbzang/article/details/10584587 一.wpa_supplicant是什么? wpa_supplicant本是开源 ...

  7. centos 7 部署 mysql 报错记录

    1. Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY 这是由于yum安装了旧版本的GPG keys造成的,解决办法就是 引用  rpm --i ...

  8. C++配置Opencv

    https://blog.csdn.net/qq_17550379/article/details/78201442

  9. Android SDK离线安装方法详解(加速安装)

    AndroidSDK在国内下载一直很慢··有时候通宵都下不了一点点,最后只有选择离线安装,现在发出离线安装地址和方法,希望对大家有帮助 一,首先下载SDK的安装包,android-sdk_r10-wi ...

  10. 英语影视台词---无敌破坏王2大脑互联网(3)((Ralph)我们去喝根汁汽水吧)

    英语影视台词---无敌破坏王2大脑互联网(3)((Ralph)我们去喝根汁汽水吧) 一.总结 一句话总结: Let's go get a root beer. 1.(Ralph)让我来瞧瞧你的本事  ...