• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 實現數據分類匯總的SQL語句

    發表于:2007-05-25來源:作者:點擊數: 標簽:sql總的現有語句分類
    現有表Test,內容如下: IDCatalogNum 1 A3 1 B 5 2 A 8 2 B 2 現在想按ID查詢出這種結果: -------------------- 1 A3 1 B5 匯總小計: 8 2 A 8 2 B2 匯總小計: 10 問:該如何實現? 在生成包含小計和合計的報表時,ROLLUP 運算符很有用。ROLLUP 運算符生成

    現有表Test,內容如下: 
    ID   Catalog    Num 
    1          A            3 
    1          B            5
    2          A            8 
    2          B            2
     
    現在想按ID查詢出這種結果:
    -------------------- 
    1          A           3
    1          B           5
    匯總小計:      8
    2          A           8 
    2          B           2
    匯總小計:     10 
     
    問:該如何實現?

    在生成包含小計和合計的報表時,ROLLUP 運算符很有用。ROLLUP 運算符生成的結果集類似于 CUBE 運算符所生成的結果集。
    ========================
    CUBE 運算符生成的結果集是多維數據集。多維數據集是事實數據的擴展,事實數據即記錄個別事件的數據。擴展建立在用戶打算分析的列上。這些列被稱為維。多維數據集是一個結果集,其中包含了各維度的所有可能組合的交叉表格。
     
    CUBE 運算符在 SELECT 語句的 GROUP BY 子句中指定。該語句的選擇列表應包含維度列和聚合函數表達式。GROUP BY 應指定維度列和關鍵字 WITH CUBE。結果集將包含維度列中各值的所有可能組合,以及與這些維度值組合相匹配的基礎行中的聚合值。
    ========================= 
     
    CUBE 和 ROLLUP 之間的區別在于: 
     
    CUBE 生成的結果集顯示了所選列中值的所有組合的聚合。
     
    ROLLUP 生成的結果集顯示了所選列中值的某一層次結構的聚合。

    The ROLLUP operator is useful in generating reports that contain subtotals and totals. The ROLLUP operator generates a result set that is similar to the result sets generated by the CUBE operator.

    The differences between CUBE and ROLLUP are:

    • CUBE generates a result set showing aggregates for all combinations of values in the selected columns.
    • ROLLUP generates a result set showing aggregates for a hierarchy of values in the selected columns.

    最后查詢語句如下:

    SELECT CASE WHEN (GROUPING(ID) = 1THEN 'ALL'
                
    ELSE ISNULL(ID, 'UNKNOWN')
           
    END AS ID,
           
    CASE WHEN (GROUPING(Catalog) = 1THEN 'ALL'
                
    ELSE ISNULL(Catalog, 'UNKNOWN')
           
    END AS Catalog,
           
    SUM(Num) AS Num
    FROM Test
    GROUP BY ID, Catalog WITH ROLLUP


    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>