码迷,mamicode.com
首页 > 其他好文 > 详细

with rollup与 with cube 学习笔记

时间:2014-12-18 16:53:30      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ar   color   使用   sp   on   数据   div   

测试语句:

 1 USE [AIS20140113215649]
 2 GO
 3 /****** Object:  Table [dbo].[t_studet]    Script Date: 10/29/2014 16:35:48 ******/
 4 SET ANSI_NULLS ON
 5 GO
 6 SET QUOTED_IDENTIFIER ON
 7 GO
 8 if exists (select * from sysobjects where xtype=U and name = t_studet)
 9 drop table t_studet
10 GO
11 CREATE TABLE [dbo].[t_studet](
12     [ID] [int] NOT NULL,
13     [sex] [nchar](10) NOT NULL,
14     [class] [nchar](10) NOT NULL,
15     [score] [int] NOT NULL,
16  CONSTRAINT [PK_t_studet] PRIMARY KEY CLUSTERED 
17 (
18     [ID] ASC
19 )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, 
20        ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
21 ) ON [PRIMARY]
22 GO
23 
24 select * from t_studet;
25 
26 insert into t_studet values(1,,二年级,1);
27 insert into t_studet values(2,,三年级,4);
28 insert into t_studet values(3,,二年级,10);
29 insert into t_studet values(4,,三年级,16);

查询结果分析

1 ----明细查询
2 select * from t_studet;

ID          sex        class      score
----------- ---------- ---------- -----------
1           男          二年级        1
2           男          三年级        4
3           女          二年级        10
4           女          三年级        16

----分组查询
select sex,class,COUNT(ID),SUM(score) from t_studet
group by sex,class;

sex        class                 
---------- ---------- ----------- -----------
男          二年级        1           1
女          二年级        1           10
男          三年级        1           4
女          三年级        1           16

----分组查询并合计
select class,sex,COUNT(ID),SUM(score) from t_studet
group by class,sex
with rollup;

class      sex                   
---------- ---------- ----------- -----------
二年级        男          1           1
二年级        女          1           10
二年级        NULL       2           11
三年级        男          1           4
三年级        女          1           16
三年级        NULL       2           20
NULL       NULL       4           31

----分组查询并合计,标记合计列
select 
       case when(grouping(sex)=1 and grouping(class)=1) then 总计 else class end,
       case 
            when(grouping(sex)=1 and grouping(class)=0) then 小计 
            when(grouping(sex)=1 and grouping(class)=1) then ‘‘ 
            else sex 
       end,
       COUNT(ID),SUM(score) 
from t_studet
group by class,sex
with rollup;
-------------左连接式的小计

----grouping(class)=0 代表 有数据
----grouping(class)=1 代表 无数据

---------- ---------- ----------- -----------
二年级        男          1           1
二年级        女          1           10
二年级        小计         2           11
三年级        男          1           4
三年级        女          1           16
三年级        小计         2           20
总计                    4           31

 1 ----分组查询并合计,标记合计列,使用条件过滤
 2 select 
 3        case when(grouping(sex)=1 and grouping(class)=1) then 总计 else class end,
 4        case 
 5             when(grouping(sex)=1 and grouping(class)=0) then 小计 
 6             when(grouping(sex)=1 and grouping(class)=1) then ‘‘ 
 7             else sex 
 8        end,
 9        COUNT(ID),SUM(score) 
10 from t_studet
11 group by class,sex 
12 with rollup having (grouping(sex)=0 and grouping(class)=0)

                                 
---------- ---------- ----------- -----------
二年级        男          1           1
二年级        女          1           10
三年级        男          1           4
三年级        女          1           16

select class,sex,COUNT(ID),SUM(score) 
from t_studet 
group by sex,class with cube 

-------------全连接式的小计

class      sex                   
---------- ---------- ----------- -----------
二年级        男          1           1
二年级        女          1           10
二年级        NULL       2           11
三年级        男          1           4
三年级        女          1           16
三年级        NULL       2           20
NULL       NULL       4           31
NULL       男          2           5
NULL       女          2           26

 

with rollup与 with cube 学习笔记

标签:style   blog   ar   color   使用   sp   on   数据   div   

原文地址:http://www.cnblogs.com/wmdcnz/p/4172004.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!