源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

总结下sqlserver group by 的用法

  • 时间:2020-01-24 08:35 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:总结下sqlserver group by 的用法
今天用实例总结一下group by的用法。 归纳一下:group by:ALL ,Cube,RollUP,Compute,Compute by 创建数据脚本 Create Table SalesInfo (Ctiy nvarchar(50), OrderDate datetime, OrderID int ) insert into SalesInfo select N'北京','2014-06-09',1001 union all select N'北京','2014-08-09',1002 union all select N'北京','2013-10-09',1009 union all select N'大连','2013-08-09',4001 union all select N'大连','2013-10-09',4002 union all select N'大连','2013-05-12',4003 union all select N'大连','2014-11-11',4004 union all select N'大连','2014-12-11',4005 首先执行以下脚本: select Ctiy,count(OrderID) as OrderCount from SalesInfo group by Ctiy with cube [img]http://files.jb51.net/file_images/article/201410/2014103123490898.png[/img] 可以看到多出了一行 是对所有的订单数的汇总 下一个脚本: select Ctiy,Year(OrderDate) as OrderYear,count(OrderID) as OrderCount from SalesInfo group by Ctiy,Year(OrderDate) with cube [img]http://files.jb51.net/file_images/article/201410/2014103123490899.png[/img] 可以看出来对分组中的维度都进行了汇总,并且还有一个订单的总和 下一个脚本(注意出现了rollup): select Ctiy,Year(OrderDate) as OrderYear,count(OrderID) as OrderCount from SalesInfo group by Ctiy,Year(OrderDate) with rollup [img]http://files.jb51.net/file_images/article/201410/20141031234908100.png[/img] 使用rollup会对group by列出的第一个分组字段进行汇总运算 下一个脚本: select Ctiy,count(OrderID) as OrderCount from SalesInfo where Ctiy = N'大连' group by all Ctiy 我们会看到 使用group by all 后,不符合条件的城市也会出现,只是订单数是零 需要注意的是 All 不能和 cube 和 rollup一起使用,和having一起使用的话,All的功能会失效. 下一个脚本: select Ctiy,orderdate,orderid from SalesInfo compute count(orderid) [img]http://files.jb51.net/file_images/article/201410/20141031234908101.png[/img] 显示了两个结果集,一个是订单结果集,一个是订单总数结果集 最后一个脚本: select Ctiy,orderdate,orderid from SalesInfo order by Ctiy compute count(orderid) by Ctiy [img]http://files.jb51.net/file_images/article/201410/20141031234908102.png[/img] 按照不同的城市,分别显示该城市的订单信息,一个显示该城市的所有订单数量 就先说这些了.
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部