sql server的cube操作符使用詳解
cube操作符要使用cube,首先要了解group by其實(shí)cube和rollup區(qū)別不太大,只是在基于group by 子句創(chuàng)建和匯總分組的可能的組合上有一定差別,cube將返回的更多的可能組合。如果在 group by 子句中有n個(gè)列或者是有n個(gè)表達(dá)式的話,sqlserver在結(jié)果集上會(huì)返回2的n-1次冪個(gè)可能組合。注意:使用cube操作符時(shí),最多可以有10個(gè)分組表達(dá)式在cube中不能使用all關(guān)鍵字例子:我們?cè)跀?shù)據(jù)庫(kù)統(tǒng)計(jì)中常常要查詢以下情況:如一個(gè)定單數(shù)據(jù)庫(kù),我們要知道每個(gè)定單的每個(gè)產(chǎn)品數(shù)量,每個(gè)定單的所有產(chǎn)品數(shù)量,所有定單的某一產(chǎn)品數(shù)量,所有定單所有產(chǎn)品總量這些匯總信息。這時(shí)使用cube就十分方便了。當(dāng)然不需要這么多信息或者只想知道某一具體產(chǎn)品、具體某一定單,某一時(shí)間關(guān)系(前,后,之間)等等具體信息的話,只需在where中限定即可先舉一個(gè)例子,是所有情況的:一個(gè)數(shù)據(jù)庫(kù)表中記載了一個(gè)產(chǎn)品定購(gòu)情況:現(xiàn)共有三種產(chǎn)品(1,2,3),已經(jīng)下了兩個(gè)定單(1,2)sql語(yǔ)句:select productid,orderid SUM(quantity) AS total FROM order GROUP BY productid,orderid WITH CUBEORDER BY productid,orderid運(yùn)行后得到結(jié)果:productidorderidtotalnull; null;;95;;;所有定單所有產(chǎn)品總量null1;;;;30;;;定單1所有產(chǎn)品數(shù)量null2;;;;65;;;定單2所有產(chǎn)品數(shù)量1;;null;;15;;;所有定單產(chǎn)品1總量1;;;1;;;;;5;;;定單1產(chǎn)品1數(shù)量1;;;2;;;;10;;;定單2產(chǎn)品1數(shù)量 2;;null;;35;;;所有定單產(chǎn)品2總量 2;;;1;;;;10;;;定單1產(chǎn)品2數(shù)量2;;;2;;;;25;;;定單2產(chǎn)品2數(shù)量; 3;;null;;45;;;所有定單產(chǎn)品3總量3;;;1;;;;15;;;定單1產(chǎn)品3數(shù)量3;;;2;;;;30;;;定單2產(chǎn)品3數(shù)量
如果您對(duì)sqlserver; group by; 聚集有一定理解的話,您就可以理解cube操作符的用法和作用。其實(shí)在現(xiàn)實(shí)運(yùn)用中cube還是很好有的,我們經(jīng)常要對(duì)一些數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行統(tǒng)計(jì),以利于我們更好的掌握情況我想電子商務(wù)可以更好的實(shí)現(xiàn)合理配置資源,盡量減少庫(kù)存,只有更好的掌握生產(chǎn)、銷售數(shù)據(jù)的具體情況,才能實(shí)現(xiàn)資源的合理配置。希望以后的企業(yè)象dell一樣,不要象長(zhǎng)虹等彩電廠商。
