• SQL SERVER 2008的Grouping sets的用法


    CREATE TABLE Sales (EmpId INT, Yr INT, Sales MONEY)

    INSERT Sales VALUES(1, 2005, 12000)

    INSERT Sales VALUES(1, 2006, 18000)

    INSERT Sales VALUES(1, 2007, 25000)

    INSERT Sales VALUES(2, 2005, 15000)

    INSERT Sales VALUES(2, 2006, 6000)

    INSERT Sales VALUES(3, 2006, 20000)

    INSERT Sales VALUES(3, 2007, 24000)

    SELECT EmpId, Yr, SUM(Sales) AS Sales FROM Sales GROUP BY EmpId, Yr WITH ROLLUP

    SELECT EmpId, Yr, SUM(Sales) AS Sales FROM Sales GROUP BY EmpId, Yr WITH CUBE

    SELECT EmpId, Yr, SUM(Sales) AS Sales FROM Sales GROUP BY GROUPING SETS((EmpId, Yr), (EmpId), ())

    EmpId       Yr          Sales
    ----------- ----------- ---------------------
    1           2005        12000.00
    1           2006        18000.00
    1           2007        25000.00
    1           NULL        55000.00
    2           2005        15000.00
    2           2006        6000.00
    2           NULL        21000.00
    3           2006        20000.00
    3           2007        24000.00
    3           NULL        44000.00
    NULL        NULL        120000.00

    SELECT EmpId, Yr, SUM(Sales) AS Sales FROM Sales GROUP BY GROUPING SETS((EmpId, Yr), (EmpId), (Yr), ())

    EmpId       Yr          Sales
    ----------- ----------- ---------------------
    1           2005        12000.00
    2           2005        15000.00
    NULL        2005        27000.00
    1           2006        18000.00
    2           2006        6000.00
    3           2006        20000.00
    NULL        2006        44000.00
    1           2007        25000.00
    3           2007        24000.00
    NULL        2007        49000.00
    NULL        NULL        120000.00
    1           NULL        55000.00
    2           NULL        21000.00
    3           NULL        44000.00


    SELECT EmpId, Yr, SUM(Sales) AS Sales FROM Sales GROUP BY GROUPING SETS((EmpId, Yr), (EmpId))

    EmpId       Yr          Sales
    ----------- ----------- ---------------------
    1           2005        12000.00
    1           2006        18000.00
    1           2007        25000.00
    1           NULL        55000.00
    2           2005        15000.00
    2           2006        6000.00
    2           NULL        21000.00
    3           2006        20000.00
    3           2007        24000.00
    3           NULL        44000.00

    SELECT EmpId, Yr, SUM(Sales) AS Sales FROM Sales GROUP BY GROUPING SETS((EmpId, Yr), ())

    EmpId       Yr          Sales
    ----------- ----------- ---------------------
    1           2005        12000.00
    1           2006        18000.00
    1           2007        25000.00
    2           2005        15000.00
    2           2006        6000.00
    3           2006        20000.00
    3           2007        24000.00
    NULL        NULL        120000.00

    SELECT EmpId, Yr, SUM(Sales) AS Sales FROM Sales GROUP BY GROUPING SETS((EmpId), (Yr))

    EmpId       Yr          Sales
    ----------- ----------- ---------------------
    NULL        2005        27000.00
    NULL        2006        44000.00
    NULL        2007        49000.00
    1           NULL        55000.00
    2           NULL        21000.00
    3           NULL        44000.00

    SELECT EmpId, Yr, SUM(Sales) AS Sales FROM Sales GROUP BY GROUPING SETS((EmpId, Yr))

    EmpId       Yr          Sales
    ----------- ----------- ---------------------
    1           2005        12000.00
    2           2005        15000.00
    1           2006        18000.00
    2           2006        6000.00
    3           2006        20000.00
    1           2007        25000.00
    3           2007        24000.00


  • 相关阅读:
    linux下wc命令详解
    用shell脚本监控进程是否存在 不存在则启动的实例附带if判断详细条件
    shell脚本输出给字体带颜色
    在centos6.5下安装配置docker
    php lock_sh共享锁 与 lock_ex排他锁
    hadoop streaming 多路输出 [转载]
    gzip压缩及测试方法【转载】
    天空没有翅膀的痕迹,而我已飞过
    logrotate机制与原理[转载]
    服务器 数据库 问题定位的几个工具
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2767085.html
Copyright © 2020-2023  润新知