現有表A,內容如下:
編碼 倉庫 數量 01 A 6 01 B 7 02 A 8 02 B 9 |
現在想按編碼查詢出這種格式:
01 A 6 01 B 7 匯總小計: 13 02 A 8 02 B 9 匯總小計: 17 |
問:該如何實現?
乍一看,好像很容易,用group by好像能實現?但仔細研究下去,你又會覺得group by也是無能為力,總欠缺點什么,無從下手。那么,到底該如何做呢?別急,SQL Server早就幫我們做好了,下面,跟我來。
首先,讓我們來看一段話:
在生成包含小計和合計的報表時,ROLLUP 運算符很有用。ROLLUP 運算符生成的結果集類似于 CUBE 運算符所生成的結果集。
CUBE 運算符生成的結果集是多維數據集。多維數據集是事實數據的擴展,事實數據即記錄個別事件的數據。擴展建立在用戶打算分析的列上。這些列被稱為維。多維數據集是一個結果集,其中包含了各維度的所有可能組合的交叉表格。
CUBE 運算符在 SELECT 語句的 GROUP BY 子句中指定。該語句的選擇列表應包含維度列和聚合函數表達式。GROUP BY 應指定維度列和關鍵字 WITH CUBE。結果集將包含維度列中各值的所有可能組合,以及與這些維度值組合相匹配的基礎行中的聚合值。
CUBE 和 ROLLUP 之間的區別在于:
CUBE 生成的結果集顯示了所選列中值的所有組合的聚合。
ROLLUP 生成的結果集顯示了所選列中值的某一層次結構的聚合。
看完以上的這段話,悟出了什么沒有?如果沒有,那么……嘿嘿,你的悟性還不夠喲,離“三花 主站蜘蛛池模板: 定结县| 应城市| 伊通| 江陵县| 岢岚县| 淳安县| 霞浦县| 永新县| 彰化市| 商水县| 苗栗市| 阿尔山市| 青冈县| 台南县| 陇川县| 定西市| 河西区| 高州市| 仁化县| 寿光市| 临汾市| 五华县| 镇沅| 那曲县| 莱州市| 通渭县| 建湖县| 长武县| 大同市| 寻甸| 托克逊县| 阿瓦提县| 石楼县| 开封县| 莱芜市| 平顶山市| 南平市| 清水县| 哈尔滨市| 平武县| 堆龙德庆县|