?? cube.txt
字號:
要使用CUBE,首先要了解GROUP BY。
其實CUBE和ROLLUP區別不太大,只是在基于GROUP BY 子句創建和匯總分組的可能的組合上有一定差別,CUBE將返回的更多的可能組合。如果在GROUP BY子句中有N個列或者是有N個表達式的話,SQLSERVER在結果集上會返回2的N-1次冪個可能組合。
CUBE和ROLLUP之間的區別在于:
CUBE 生成的結果集顯示了所選列中值的所有組合的聚合。
ROLLUP生成的結果集顯示了所選列中值的某一層次結構的聚合
ROLLUP就是將GROUP BY后面的第一列名稱求總和,而其他列并不要求
而CUBE則會將每一個列名稱都求總和
COPY了一個例子,首先用ROLLUP
查詢語句:
Select cust_id,product_code,sum(qty) as quantity
From invoices Where cust_id IN (4,5)
Group By cust_id, product_code
WITH Rollup Order By cust_id
查詢結果:
cust_id product_code quantity
------- -------------- -------
NULL NULL 10
4 5 3
4 6 3
4 NULL 6
5 5 4
5 NULL 4
第一行是4,5買的所有產品的數量(
第二行是4買5產品的數量
第三行是4買6產品的數量
第四行是4買所有產品的數量(按照cust_id=4總匯)
第五行是5買5產品的數量
第六行是5買所有產品的數量(按照cust_id=5總匯)
如果查詢語句中的ROLLUP關鍵字更改為CUBE,就會多出有關產品的信息
查詢結果:
cust_id product_code quantity
------- -------------- -------
NULL NULL 10
NULL 5 7
NULL 6 3
4 5 3
4 6 3
4 NULL 6
5 5 4
5 NULL 4
第2行是所有顧客買5產品的數量(product_code=5 總匯)
第3行是所有顧客買6產品的數量(product_code=6 總匯)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -