总结下sqlserver group by 的用法
总结下sqlserver group by 的用法
发布时间:2016-12-29 来源:查字典编辑
摘要:今天用实例总结一下groupby的用法。归纳一下:groupby:ALL,Cube,RollUP,Compute,Computeby创建数据...

今天用实例总结一下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

总结下sqlserver group by 的用法1

可以看到多出了一行 是对所有的订单数的汇总

下一个脚本:

select Ctiy,Year(OrderDate) as OrderYear,count(OrderID) as OrderCount

from

SalesInfo

group by Ctiy,Year(OrderDate)

with cube

总结下sqlserver group by 的用法2

可以看出来对分组中的维度都进行了汇总,并且还有一个订单的总和

下一个脚本(注意出现了rollup):

select Ctiy,Year(OrderDate) as OrderYear,count(OrderID) as OrderCount

from

SalesInfo

group by Ctiy,Year(OrderDate)

with rollup

总结下sqlserver group by 的用法3

使用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)

总结下sqlserver group by 的用法4

显示了两个结果集,一个是订单结果集,一个是订单总数结果集

最后一个脚本:

select Ctiy,orderdate,orderid

from

SalesInfo

order by Ctiy

compute count(orderid) by Ctiy

总结下sqlserver group by 的用法5

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

就先说这些了.

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新mssql数据库学习
热门mssql数据库学习
编程开发子分类