SQL Server group by 的用法解析
这篇文章主要为大家详细介绍了SQL Server group by 的用法解析,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
今天用实例总结一下group by的用法。
归纳一下:group by:ALL ,Cube,RollUP,Compute,Compute by
创建数据脚本
Create Table SalesInfo(Ctiy nvarchar(50),OrderDate datetime,OrderID int)
insert into SalesInfoselect N'北京','2014-06-09',1001union allselect N'北京','2014-08-09',1002union allselect N'北京','2013-10-09',1009union allselect N'大连','2013-08-09',4001union allselect N'大连','2013-10-09',4002union allselect N'大连','2013-05-12',4003union allselect N'大连','2014-11-11',4004union allselect N'大连','2014-12-11',4005
首先执行以下脚本:
select Ctiy,count(OrderID) as OrderCountfromSalesInfogroup by Ctiywith cube
【图片暂缺】
可以看到多出了一行 是对所有的订单数的汇总
下一个脚本:
select Ctiy,Year(OrderDate) as OrderYear,count(OrderID) as OrderCountfromSalesInfogroup by Ctiy,Year(OrderDate)with cube
【图片暂缺】
可以看出来对分组中的维度都进行了汇总,并且还有一个订单的总和
下一个脚本(注意出现了rollup):
select Ctiy,Year(OrderDate) as OrderYear,count(OrderID) as OrderCountfromSalesInfogroup by Ctiy,Year(OrderDate)with rollup
【图片暂缺】
使用rollup会对group by列出的第一个分组字段进行汇总运算
下一个脚本:
select Ctiy,count(OrderID) as OrderCountfromSalesInfowhereCtiy = N'大连'group by all Ctiy
我们会看到 使用group by all 后,不符合条件的城市也会出现,只是订单数是零
需要注意的是 All 不能和 cube 和 rollup一起使用,和having一起使用的话,All的功能会失效.
下一个脚本:
select Ctiy,orderdate,orderidfromSalesInfocompute count(orderid)
【图片暂缺】
显示了两个结果集,一个是订单结果集,一个是订单总数结果集
最后一个脚本:
select Ctiy,orderdate,orderidfromSalesInfoorder by Ctiycompute count(orderid) by Ctiy
【图片暂缺】
按照不同的城市,分别显示该城市的订单信息,一个显示该城市的所有订单数量
就先说这些了.
注:关于SQL Server group by 的用法解析的内容就先介绍到这里,更多相关文章的可以留意