SQL统计——按照各种维度
在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
/*CUBE运算符生成的结果集是多维数据集,多维数据集是事实数据的扩展,事实数据即记录个别时间的数据,扩展建立在用户准备分析的列上,这些列被称为维,多维数据集是一个结果集,其中包含各纬度所有可能的交叉表格*/ ------------------------------使用单个维度进行统计
SELECT PName as 员工姓名,
SUM(CMoney) 总收入
FROM tb_Income
GROUP BY CUBE (PName)

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

上面是按照CUBE进行统计的,接下来是使用ROLLUP进行统计
-------------------------------使用ROLLUP进行统计
SELECT TeamID As 项目组编号,PName as 员工姓名,
SUM(CMoney) 总收入
FROM tb_Income
GROUP BY ROLLUP (PName,TeamID)

- CUBE 生成的结果集显示了所选列中值的所有组合的聚合。
- ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。
SQL统计——按照各种维度的更多相关文章
- MS SQL统计信息浅析下篇
MS SQL统计信息浅析上篇对SQL SERVER 数据库统计信息做了一个整体的介绍,随着我对数据库统计信息的不断认识.理解,于是有了MS SQL统计信息浅析下篇. 下面是我对SQL Serve ...
- sql统计字符串出现次数技巧
在牛客网上看到一道题,感觉挺有趣,是用sql统计字符串出现的次数. 这里提供一种思路,比如统计字符串A中子串B的出现次数: SELECT (LENGTH(A) - LENGTH(REPLACE(A, ...
- sql 统计常用的sql
统计常用的sql 统计常用的sql语句: 今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:s ...
- MS SQL 统计信息浅析上篇
统计信息概念 统计信息是一些对象,这些对象包含在表或索引视图中一列或多列中的数据分布有关的统计信息.数据库查询优化器使用这些统计信息来估计查询结果中的基数或行数. 通过这些基数估计,查询优化器可以生成 ...
- mysql 按年度、季度、月度、周、日SQL统计查询
创建Table CREATE TABLE `test` ( `cdate` datetime DEFAULT NULL, `id` ) DEFAULT NULL, `name` ) DEFAULT N ...
- sql统计重复数据
sql代码如下: 统计重复的数据 select MingCheng from tabShouFeiGongShi group by MingCheng having count(MingCheng) ...
- ***SQL统计语句总结(运用场景:运营分析,财务分析等)
-- 统计三月的每天的数据量 ,) ,) ; --统计从5月19到6月29的数据量 , ) AS '日期', count(*) AS '医说数' FROM xm_feed a WHERE a.feed ...
- sql 统计用的sql
mh:工时 mhtype:工时类型(6种) 字段:userid mhtype mh 001 1 5 001 ...
- SQL 统计某一天的数据量时, 使用 dateValue(字段) 与 between 性能差异很明显。
感觉好久没有写sql语句了... 今天需要写一个统计某一天的数据时,考虑到字段的内容格式是: 2018-12-18 09:36:23 我开始写的是: select count(id) as reCo ...
随机推荐
- 在ubuntu 部署svn服务器
(1)安装svn sudo apt-get install subversion (2)新建一个仓库 mkdir /svn/test chmod 777 /svn/test sudo svnadmin ...
- Oracle基础 (十四)其他函数
转换函数: TO_DATE:转换为日期 --将字符串转换为日期 SELECT TO_DATE('2014-12-31', 'yyyy-mm-dd') FROM DUAL; SELECT TO_DATE ...
- pl sql 变量的声明和赋值
链接地址:http://www.cnblogs.com/zhengcheng/p/4168670.html 一.什么是PL-SQL PL-SQL是结合了Oracle过程语言和结构化查询语言(SQL)的 ...
- MySQL中/*!40100注释
MySQL中的注释 MySQL中的注释有三种: # 注释内容 -- 注释内容 /* 注释内容*/ 但是,在导出的SQL文件中,也会看到类似如下内容的注释: CREATE DATABASE `blog` ...
- linux yum install resource - epel
首先现在如下rpm包,然后安装对应的rpm包centos5 32位epel源下载地址: www.lishiming.net/data/attachment/forum/epel-release-5-4 ...
- hdu3336
Count the string Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- BZOJ 2456
Description 给你一个n个数的数列,其中某个数出现了超过n div 2次即众数,请你找出那个数. Input 第1行一个正整数n.第2行n个正整数用空格隔开. Output 一行一个正整数表 ...
- android app性能优化大汇总(google官方Android性能优化典范 - 第1季)
大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能.从设计师的角度,他们希望App能够有更多的动画,图片等时尚元素来实现流畅的用户体验.但是Android系统很有可能无法及时完成那些复杂的界 ...
- JAVA之执行cmd命令
感言在前:时隔好久没有更新博客园了,忙东忙西也没忙出个什么之所以然来.回首过去一两个月,只能用“疲倦”两个字来形容,而且是身心疲惫.每天11.12个小时的工作我都没觉得烦,但是总是想克服却又很难克服的 ...
- 数据库设计(字段)中的char、varchar、text和nchar、nvarchar、ntext的区别
char.varchar.text和nchar.nvarchar.ntext的区别 1.CHAR.CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数 ...
