zoukankan      html  css  js  c++  java
  • 总结 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

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

    就先说这些了.

  • 相关阅读:
    CISCO实验记录九:NAT地址转换
    CISCO实验记录八:ACL访问控制
    【零基础】风格迁移之deep-painterly-harmonization的安装和使用
    CISCO实验记录七:OSPF
    【零基础】看懂“深度学习”的优势
    数学专业各学科视频网址
    Flash网站Loading制作
    30张图 讲述真实的人性
    【UXPA工作坊小记】郎学明:做更“有用”的用户研究
    科学训练传播训练营///第一期:科学问题的复杂性///参后感觉
  • 原文地址:https://www.cnblogs.com/wanglg/p/4033106.html
Copyright © 2011-2022 走看看