主页 > 知识库 > 总结下sqlserver group by 的用法

总结下sqlserver group by 的用法

热门标签:400外呼系统合法 电销机器人被曝光 洛阳外呼系统平台 广州人工电销机器人费用 地图标注一个圆圈怎么用 怎样把地图标注导入公司地址 宁波人工外呼系统有效果吗 真人语音电销机器人 如何在地图标注自己店铺

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

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

下一个脚本:

select Ctiy,Year(OrderDate) as OrderYear,count(OrderID) as OrderCount
from
SalesInfo
group by Ctiy,Year(OrderDate)
with cube

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

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

select Ctiy,Year(OrderDate) as OrderYear,count(OrderID) as OrderCount
from
SalesInfo
group by Ctiy,Year(OrderDate)
with rollup

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

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

最后一个脚本:


select Ctiy,orderdate,orderid
from
SalesInfo
order by Ctiy
compute count(orderid) by Ctiy

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

就先说这些了.

您可能感兴趣的文章:
  • mssql CASE,GROUP BY用法
  • mysql筛选GROUP BY多个字段组合时的用法分享
  • 浅析SQL语句中GROUP BY的用法
  • MySQL中distinct与group by语句的一些比较及用法讲解
  • 详解SQL中Group By的用法

标签:东营 珠海 北海 晋中 南昌 石家庄 烟台 咸宁

巨人网络通讯声明:本文标题《总结下sqlserver group by 的用法》,本文关键词  总,结下,sqlserver,group,的,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《总结下sqlserver group by 的用法》相关的同类信息!
  • 本页收集关于总结下sqlserver group by 的用法的相关信息资讯供网民参考!
  • 推荐文章