计总与排名SUM和RANK函数
准备一些数据:
- 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函数的更多相关文章
- sql server 中用于排名的三个函数 row_number() ,RANK() 和 DENSE_RANK()
row_number() ,RANK() 和 DENSE_RANK() 三个配合over() 使用排名 只是只是计算方式不一样,语法基本一样 语法: ROW_NUMBER() OVER (OR ...
- SQL Server排名或排序的函数
SQL Server获得排名或排序的函数有如下几种: 1.Rank():在结果集中每一条记录所在的排名位置,但排名可能不连续,例如:若同一组内有两个第一名,则该组内下一个名次直接跳至第三名 sel ...
- oracle 分组中排序(rank函数)
需求: 查询每个供应商在每个类型产品销售的top50中有多少 分析: 1.查询,以指定字段(供应商.产品类型)分组,取每个分组的前50行,查看每个供应商的数量 2.使用rank函数给每个供应商.每个类 ...
- MySQL之实现Oracle中的rank()函数的功能
假设表格为student, 数据如下: 我们要在MySQL中实现Oracle中的rank()函数功能,即组内排序,具体来说: 就是对student表中按照课程(course)对学生(name) ...
- Oracle查询部门工资最高员工的两种方法 1、MAX()函数 2、RANK()函数
本文以SCOTT用户下初始的EMP表为参考.代码可直接使用. 查询EMP表结构的语句如下,[代码1]: DESC EMP; EMP表结构如下:[结果1]: SQL> DESC EMP ...
- Mysql查询指定用户并列排名 类似rank函数
SELECT total.* FROM ( SELECT obj.uid, obj.score, CASE WHEN @rowtotal = obj.score THEN @rownum WHEN @ ...
- rank()函数的使用
排序: ---rank()over(order by 列名 排序)的结果是不连续的,如果有4个人,其中有3个是并列第1名,那么最后的排序结果结果如:1 1 1 4select scoreid, stu ...
- 查找数据库中重复的值的数据,having的使用,count(1),sum等聚会函数
通过having代替where来使用count(1),sum()等函数.譬如如下数据id value1 21 32 33 53 6 可以写个语句统计value的分组 在这里,可以省略前面的sum(va ...
- sql - sum() 和 count() 函数的区别
对sql一直都是蜻蜓点水,突然也觉得对这两个函数的区别有点朦胧,查了一下,在这里说一下: sum():主要用于累加求和. count():主要用于行(记录)的统计.
随机推荐
- Eclipse中servlet显示无法导入javax.servlet包问题的解决方案
项目名-->右键 Property-->选择 JavaBuild Path-->选择 Add External JARs-->选择 把servlet-api.jar的路径输入即 ...
- Mongo 分组后排序取时间最大的一整条数据对象
db.getCollection('product_protocol_new').aggregate([ {$sort:{"end_date":-1}}, {$group:{ _i ...
- vue --- axios , vuex
一 . 内容回顾 1.webpack(前端中工作,项目上线之前对整个前端项目优化) - entry:整个项目的程序入口(main.js或index.js): - output:输出的出口: - loa ...
- TS流分析
http://blog.csdn.net/zxh821112/article/details/17587215 一 从TS流开始 数字电视机顶盒接收到的是一段段的码流,我们称之为TS(Transpor ...
- python注释行与段落
注释行:# 注释段:‘’‘ ’‘’
- 2013各大IT公司薪资标准
以此鼓励自己 :http://jinhua.19lou.com/forum-874-thread-115901362964023509-1-1.html 以下三个是老大级别的公司 [微软] 研 ...
- centos7搭建redis主从复制,并模拟故障切换。
Cntos7搭建redis主从复制,并模拟故障主从切换 主从复制搭建 主机:192.168.161.179 从机:192.168.161.180 1. 安装主redis 自己本地环境,关 ...
- L90
On Motes and Beams 微尘与栋梁 It is curious that our own offenses should seem so much less heinous than t ...
- xxx referenced from: xxx in xxx.o
情形一:可能是有一些源码文件没有加入工程所导致的,找到相应的.h和.m文件,将其add进入项目工程即可解决这种问题. 情形二:也有可能是某些framework没有加入项目中, 示例: Undefi ...
- sed根据关键字注释crontab的计划任务
[root@linux06 ~]# crontab -e*/5 * * * * /root/time_test.sh ----------------------------------------- ...