总结下sqlserver group by 的用法

 更新时间:2014年10月31日 23:49:48   作者:wanglgkaka  
这篇文章主要介绍了总结下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

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

下一个脚本:

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中获取指定日期所在月份的第一天的代码

    mssql中获取指定日期所在月份的第一天的代码

    mssql中获取指定日期所在月份的第一天的代码,需要的朋友可以参考下。
    2011-09-09
  • SQL中 and or in的用法小结

    SQL中 and or in的用法小结

    这篇文章主要介绍了SQL中 and or in的用法小结,IN运算符允许您在WHERE子句中指定多个值,IN运算符是多个OR条件的简写,本文结合实例代码介绍的非常详细,感兴趣的朋友一起看看吧
    2024-04-04
  • SQLServer RANK() 排名函数的使用

    SQLServer RANK() 排名函数的使用

    本文主要介绍了SQLServer RANK() 排名函数的使用,文中根据实例编码详细介绍的十分详尽,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • SQL数据分页查询的方法

    SQL数据分页查询的方法

    这篇文章主要为大家详细介绍了SQL数据分页查询的四种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • SQL Server 数据库优化

    SQL Server 数据库优化

    设计1个应用系统似乎并不难,但是要想使系统达到最优化的性能并不是一件容易的事。
    2009-07-07
  • 验证SQL保留字

    验证SQL保留字

    验证SQL保留字...
    2006-07-07
  • 详解SqlServer数据库中Substring函数的用法

    详解SqlServer数据库中Substring函数的用法

    substring操作的字符串,开始截取的位置,返回的字符个数,本文通过简单实例给大家介绍了SqlServer数据库中Substring函数的用法,感兴趣的朋友一起看看吧
    2018-04-04
  • sql server实现图片的存入和读取的流程详解

    sql server实现图片的存入和读取的流程详解

    这篇文章主要介绍了sql server实现图片的存入和读取的详细流程,文中通过代码示例和图文结合的方式给大家讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-05-05
  • SSIS 延迟验证方法

    SSIS 延迟验证方法

    下面小编就为大家分享一篇SSIS 延迟验证方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • MSSQL MySQL 数据库分页(存储过程)

    MSSQL MySQL 数据库分页(存储过程)

    有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标。本人不喜欢使用游标,我觉得它耗资、效率低;使用存储过程是个不错的选择,因为存储过程是经过预编译的,执行效率高,也更灵活
    2012-01-01

最新评论