SQL统计——按照各种维度

时间:2022-08-31 18:43:39

在SQLserver中可以按照各种维度进行统计,实现与EXCLE一样强大的功能。

--==========================
--Blog:<奔跑的金鱼>
--Desc:<SQL统计>
--Date:<2015-01-07>
--==========================
/*描述:不同员工在不同时间参加不同项目组中,获得的收入*/
IF EXISTS(SELECT * FROM sysobjects where ID=OBJECT_ID(N'tb_Income') and XTYPE='U')
DROP TABLE tb_Income CREATE TABLE [tb_Income]
(
[TeamID] int not null,
[PName] Nvarchar(20) NOT NULL,
[CYear] Smallint NOT NULL,
[CMonth] TinyInt NOT NULL,
[CMoney] Decimal (10,2) Not Null
) ---------------------插入测试数据
INSERT [dbo].[tb_Income]
SELECT 1,'荆天明',2011,2,5600
union ALL SELECT 1,'荆天明',2011,1,5678
union ALL SELECT 1,'荆天明',2011,3,6798
union ALL SELECT 2,'荆天明',2011,4,7800
union ALL SELECT 2,'荆天明',2011,5,8899
union ALL SELECT 3,'荆天明',2012,8,8877 union ALL SELECT 1,'高月',2011,1,3455
union ALL SELECT 1,'高月',2011,2,4567
union ALL SELECT 2,'高月',2011,3,5676
union ALL SELECT 3,'高月',2011,4,5600
union ALL SELECT 2,'高月',2011,5,6788
union ALL SELECT 2,'高月',2012,6,5679
union ALL SELECT 2,'高月',2012,7,6785 union ALL SELECT 2,'端木蓉',2011,2,5600
union ALL SELECT 2,'端木蓉',2011,3,2345
union ALL SELECT 2,'端木蓉',2011,5,12000
union ALL SELECT 3,'端木蓉',2011,4,23456
union ALL SELECT 3,'端木蓉',2011,6,4567
union ALL SELECT 1,'端木蓉',2012,7,6789
union ALL SELECT 1,'端木蓉',2012,8,9998 union ALL SELECT 3,'高渐离',2011,7,6798
union ALL SELECT 3,'高渐离',2011,10,10000
union ALL SELECT 3,'高渐离',2011,9,12021
union ALL SELECT 2,'高渐离',2012,11,8799
union ALL SELECT 1,'高渐离',2012,12,10002 union ALL SELECT 3,'少司命',2011,8,7896
union ALL SELECT 3,'少司命',2011,9,7890
union ALL SELECT 2,'少司命',2011,10,7799
union ALL SELECT 2,'少司命',2011,11,9988
union ALL SELECT 2,'少司命',2012,9,34567
union ALL SELECT 3,'少司命',2012,12,5609 --------------------------------查询表中数据 select * from tb_Income
SQL统计——按照各种维度
/*CUBE运算符生成的结果集是多维数据集,多维数据集是事实数据的扩展,事实数据即记录个别时间的数据,扩展建立在用户准备分析的列上,这些列被称为维,多维数据集是一个结果集,其中包含各纬度所有可能的交叉表格*/ ------------------------------使用单个维度进行统计
SELECT PName as 员工姓名,
SUM(CMoney) 总收入
FROM tb_Income
GROUP BY CUBE (PName)

SQL统计——按照各种维度

------------------------------使用多个维度进行统计
SELECT TeamID As 项目组编号,PName as 员工姓名,
SUM(CMoney) 总收入
FROM tb_Income
GROUP BY CUBE (PName,TeamID)

SQL统计——按照各种维度

上面是按照CUBE进行统计的,接下来是使用ROLLUP进行统计

 -------------------------------使用ROLLUP进行统计
SELECT TeamID As 项目组编号,PName as 员工姓名,
SUM(CMoney) 总收入
FROM tb_Income
GROUP BY ROLLUP (PName,TeamID)

SQL统计——按照各种维度

  • CUBE 生成的结果集显示了所选列中值的所有组合的聚合。
  • ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。

SQL统计——按照各种维度的更多相关文章

  1. MS SQL统计信息浅析下篇

       MS SQL统计信息浅析上篇对SQL SERVER 数据库统计信息做了一个整体的介绍,随着我对数据库统计信息的不断认识.理解,于是有了MS SQL统计信息浅析下篇. 下面是我对SQL Serve ...

  2. sql统计字符串出现次数技巧

    在牛客网上看到一道题,感觉挺有趣,是用sql统计字符串出现的次数. 这里提供一种思路,比如统计字符串A中子串B的出现次数: SELECT (LENGTH(A) - LENGTH(REPLACE(A, ...

  3. sql 统计常用的sql

    统计常用的sql  统计常用的sql语句: 今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:s ...

  4. MS SQL 统计信息浅析上篇

    统计信息概念 统计信息是一些对象,这些对象包含在表或索引视图中一列或多列中的数据分布有关的统计信息.数据库查询优化器使用这些统计信息来估计查询结果中的基数或行数. 通过这些基数估计,查询优化器可以生成 ...

  5. mysql 按年度、季度、月度、周、日SQL统计查询

    创建Table CREATE TABLE `test` ( `cdate` datetime DEFAULT NULL, `id` ) DEFAULT NULL, `name` ) DEFAULT N ...

  6. sql统计重复数据

    sql代码如下: 统计重复的数据 select MingCheng from tabShouFeiGongShi group by MingCheng having count(MingCheng) ...

  7. &ast;&ast;&ast;SQL统计语句总结(运用场景:运营分析,财务分析等)

    -- 统计三月的每天的数据量 ,) ,) ; --统计从5月19到6月29的数据量 , ) AS '日期', count(*) AS '医说数' FROM xm_feed a WHERE a.feed ...

  8. sql 统计用的sql

    mh:工时   mhtype:工时类型(6种) 字段:userid      mhtype    mh       001          1        5       001          ...

  9. SQL 统计某一天的数据量时, 使用 dateValue&lpar;字段&rpar; 与 between 性能差异很明显。

    感觉好久没有写sql语句了... 今天需要写一个统计某一天的数据时,考虑到字段的内容格式是:  2018-12-18 09:36:23 我开始写的是: select count(id) as reCo ...

随机推荐

  1. 如果asp&period;net mvc中某个action被执行了两次,请检查是不是以下的原因

    注释 <link rel="icon" href="#"> 这一句后试试

  2. vsphere平台windows虚拟机克隆的小插曲

    问题: 1.克隆完windows虚拟化后输入法乱码. 2.开启远程的情况下远程登录输入正确的密码也无法登录. 解决: 1.更改管理员用户密码(不输入原win7密码更改win7密码). 2.重新启用管理 ...

  3. 40&period; 特殊a串数列求和

    特殊a串数列求和 #include <stdio.h> int main() { int i, a, n, item, sum, temp; while (scanf("%d % ...

  4. iOS真机测试种可能遇到的问题

    1. Reason- image not found 用模拟器是没有问题的,不过在真机好像是有问题,不确定是否是所有机型. 崩溃日志   1 2 3 4 5   dyld: Library not l ...

  5. DUMP1 企业级电商项目

    系统:centos6 配置mirror阿里云 https://opsx.alibaba.com/mirror 远程管理首选:ssh 账户密码登录(ssh user@host) 或者 本地私钥连接服务器 ...

  6. HBase使用压缩存储(snappy)

    在将mysql数据导入到hbase数据的过程中,发现hbase的数据容量增加很快, 原本在mysql存储30G容量的数据导入到hbase一直增加到快150G(还未完全导入,手动结束), 而采用默认3个 ...

  7. shell脚本npm构建静态文件

    #!/bin/bash cd /data/web source /etc/profile /usr/bin/cnpm i && npm run build cp -r ./dist/* ...

  8. DIV&comma;CSS学习

    如何将页脚固定在页面底部 http://web.jobbole.com/10408/

  9. BZOJ2730:&lbrack;HNOI2012&rsqb;矿场搭建——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=2730 https://www.luogu.org/problemnew/show/P3225 听说 ...

  10. 设置窗口的z-order总是在最底部

    想让窗口置顶,很简单,只需要在SetWindowPos中指定 HWND_TOPMOST就OK了, 但是如果想要窗口始终位于最底端,Windows却没有提供接口. 不过呢,Windows提供了一个消息W ...