sqlserver中group by语法的用法

发布时间:2021-09-13 22:38:01 作者:chen
来源:亿速云 阅读:232

本篇内容介绍了“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 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

按照不同的城市,分别显示该城市的订单信息,一个显示该城市的所有订单数量

“sqlserver中group by语法的用法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. SQL中Group By的用法与Group By多个字段限制的案例
  2. mysql的group by 语法讲义

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

sqlserver

上一篇:sqlserver中的事务和锁的详细介绍

下一篇:oracle忘记用户密码的解决方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》