使用 GROUPING SETS 的 GROUP BY 子句可以生成一个等效于由多个简单 GROUP BY 子句的 UNION ALL 生成的结果集
示例:(sql server 2008 R2)
创建测试数据库及表并插入测试数据
use master
CREATE DATABASE db_sales
go
use db_sales
go
CREATE TABLE [dbo].[tb_sale](
[id] [int] IDENTITY(1,1) NOT NULL,
[server] [nvarchar](50) NULL,
[pname] [nvarchar](50) NULL,
[pinpai] [nvarchar](50) NULL,
[dates] [smalldatetime] NULL,
[cnt] [int] NULL
) ON [PRIMARY]
go
INSERT INTO [db_ControlManager_ft].[dbo].[test]([server],[pname],[pinpai],[dates],[cnt])
VALUES('A','computer','hp','2012-01-01',1),
('A','computer','hp','2012-01-02',3),
('A','computer','hp','2012-01-03',5),
('A','computer','hp','2012-01-04',1),
('A','computer','hp','2012-01-05',3),
('A','computer','hp','201