ms sql server的cube操作符使用詳解

2021-08-22 01:55:22 字數 1289 閱讀 8198

ms sql server的cube操作符使用詳解

cube操作符

要使用cube,首先要了解group by

其實cube和rollup區別不太大,只是在基於group by 子句建立和彙總分組的可能的組合上有一定差別,

cube將返回的更多的可能組合。如果在 group by 子句中有n個列或者是有n個表示式的話,

sqlserver在結果集上會返回2的n-1次冪個可能組合。

注意:使用cube操作符時,最多可以有10個分組表示式

在cube中不能使用all關鍵字

例子:我們在資料庫統計中常常要查詢以下情況:

如乙個定單資料庫,我們要知道每個定單的每個產品數量,每個定單的所有產品數量,所有定單的某一產品數量,所有定單所有產品總量這些彙總資訊。這時使用cube就十分方便了。當然不需要這麼多資訊或者只想知道某一具體產品、具體某一定單,某一時間關係(前,後,之間)等等具體資訊的話,只需在where中限定即可

先舉乙個例子,是所有情況的:

乙個資料庫表中記載了乙個產品定購情況:

現共有三種產品(1,2,3),已經下了兩個定單(1,2)

sql語句:

select productid,orderid sum(quantity) as total from order group by productid,orderid with cube

order by productid,orderid

執行後得到結果:

productid orderid total

null null 95 所有定單所有產品總量

null 1 30 定單1所有產品數量

null 2 65 定單2所有產品數量

1 null 15 所有定單產品1總量

1 1 5 定單1產品1數量

1 2 10 定單2產品1數量

2 null 35 所有定單產品2總量

2 1 10 定單1產品2數量

2 2 25 定單2產品2數量

3 null 45 所有定單產品3總量

3 1 15 定單1產品3數量

3 2 30 定單2產品3數量

如果您對sqlserver group by 聚集有一定理解的話,您就可以理解cube操作符的用法和作用。其實在現實運用中cube還是很好有的,我們經常要對一些資料庫資料進行統計,以利於我們更好的掌握情況

我想電子商務可以更好的實現合理配置資源,儘量減少庫存,只有更好的掌握生產、銷售資料的具體情況,才能實現資源的合理配置。希望以後的企業象dell一樣,不要象長虹等彩電廠商。

MS SQL Server版本的選擇

這兩天尋思著將用了很久的sql server express edtion換一換,因為這畢竟是個免費版,很多功能,包括使用起來感覺不是很好,但是面對sql server的一大堆版本,我茫然了,不知道該怎麼選擇,真的感到很糾結,一般sql server有如下幾個版本,先來做個大概介紹.2,標準版 st...

MSSQLSERVER 儲存過程

系統儲存過程 列出sql server例項中的資料庫 sp databases 返回sql server 資料庫閘道器或基礎資料來源的特性名和匹配值的列表 sp server info 返回當前環境中的儲存過程列表 sp stored procedures 返回當前環境下可查詢的物件的列表 任何可出...

簡單MSSQLServer語句

常見的的sql語句 資料庫 ms sqlserver db 代表資料庫 tb 代表表 col 代表列 表table 行 row 列 column 備份資料庫 backup database db to disk f dbbak db.bak 備份資料表 select into tb 20170116...