zoukankan      html  css  js  c++  java
  • 使用 ROLLUP 汇总数据

    代码
    CREATE TABLE tblPopulation (
    Country 
    VARCHAR(100),
    [State] VARCHAR(100),
    City 
    VARCHAR(100),
    [Population (in Millions)] INT
    )
    GO
    INSERT INTO tblPopulation VALUES('India''Delhi','East Delhi',9 )
    INSERT INTO tblPopulation VALUES('India''Delhi','South Delhi',8 )
    INSERT INTO tblPopulation VALUES('India''Delhi','North Delhi',5.5)
    INSERT INTO tblPopulation VALUES('India''Delhi','West Delhi',7.5)
    INSERT INTO tblPopulation VALUES('India''Karnataka','Bangalore',9.5)
    INSERT INTO tblPopulation VALUES('India''Karnataka','Belur',2.5)
    INSERT INTO tblPopulation VALUES('India''Karnataka','Manipal',1.5)
    INSERT INTO tblPopulation VALUES('India''Maharastra','Mumbai',30)
    INSERT INTO tblPopulation VALUES('India''Maharastra','Pune',20)
    INSERT INTO tblPopulation VALUES('India''Maharastra','Nagpur',11 )
    INSERT INTO tblPopulation VALUES('India''Maharastra','Nashik',6.5)
    GO


    SELECT Country,[State],City,
    SUM ([Population (in Millions)]AS [Population (in Millions)]
    FROM tblPopulation
    GROUP BY Country,[State],City WITH ROLLUP
     
    摘自:

    SQL SERVER – Introduction to Rollup Clause

    [UPDATE 2010-9-1]另一种表现形式把汇总行的信息改为:合计

    代码
    SELECT 
        
    CASE 
            
    WHEN ( GROUPING ( Country ) = 1 ) THEN N'合计' 
            
    ELSE isnull ( Country , 'UNKNOWN' ) 
        
    END AS Country,
        
    CASE 
            
    WHEN ( GROUPING ( [State] ) = 1 ) THEN N'合计' 
            
    ELSE isnull ( [State] , 'UNKNOWN' ) 
        
    END AS  [State] ,
        
    CASE 
            
    WHEN ( GROUPING ( City ) = 1 ) THEN N'合计' 
            
    ELSE isnull ( City , 'UNKNOWN' ) 
        
    END AS  City ,    
        
    sum ( [Population (in Millions)] ) AS [Population (in Millions)] 
    FROM tblPopulation 
    GROUP BY Country , [State] , City WITH ROLLUP 


     最后结果:

    Country    State       City         Population (in Millions)
    ---------- ----------- ------------ ------------------------
    India      Delhi       East Delhi   9
    India      Delhi       North Delhi  5
    India      Delhi       South Delhi  8
    India      Delhi       West Delhi   7
    India      Delhi       合计           29
    India      Karnataka   Bangalore    9
    India      Karnataka   Belur        2
    India      Karnataka   Manipal      1
    India      Karnataka   合计           12
    India      Maharastra  Mumbai       30
    India      Maharastra  Nagpur       11
    India      Maharastra  Nashik       6
    India      Maharastra  Pune         20
    India      Maharastra  合计           67
    India      合计          合计           108
    合计         合计          合计           108 

  • 相关阅读:
    python全栈-Day 4
    5个步骤实现软件质量的快速提升
    如何选择正确的静态应用安全测试(SAST)解决方案?
    安全工具箱必备技术之静态分析安全测试(SAST)
    精彩回顾:2020年自动化软件测试质量峰会
    怎样才能明智地利用代码覆盖率来最大限度地提高测试效率?
    软件开发你不可不知的那些事:如何有效减轻风险和质量债务?
    敏捷开发中不为人知的小秘密,你是否深有同感?
    当AI遇上API测试 — 敏捷开发已迎来革新时代!
    面对行业分析家和敏捷专家都认可的API测试,我们为什么会望而却步?
  • 原文地址:https://www.cnblogs.com/jintan/p/1676914.html
Copyright © 2011-2022 走看看