亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

Grouping Sets:CUBE和ROLLUP從句

2024-07-21 02:46:15
字體:
來源:轉載
供稿:網友
Grouping Sets:CUBE和ROLLUP從句

在上一篇文章里我討論了SQL Server里Grouping Sets的功能。從文中的例子可以看到,通過簡單定義需要的分組集是很容易進行各自分組。但如果像從所給的列集里想要有所有可能的分布——即所謂的冪集(Power Set),要怎么做呢?

當然,你可以用grouping set的語法功能來手動生成冪集,但那需要寫一大堆的代碼。因此今天我向你展示下grouping set功能支持的2個從句:CUBEROLLUP從句。

CUBE從句

使用CUBE從句,對于提供的列集,你可以生成所有可能的分組集。這就是所謂的冪集。當你有3列:a,b,和c。CUBE(a,b,c會為你生成下列分組:

  • (a,b,c)
  • (a,b)
  • (b,c)
  • (a)
  • (b)
  • (c)
  • ()

下列查詢對CustomerID, SalesPersonID和YEAR(OrderDate) 列通過上周介紹的grouping set功能手工生成冪集。

 1 -- Calculates the power set of CustomerID, SalesPersonID, YEAR(OrderDate) 2 SELECT 3     CustomerID,  4     SalesPersonID,  5     YEAR(OrderDate) AS 'OrderYear',  6     SUM(TotalDue) AS 'TotalDue' 7 FROM Sales.SalesOrderHeader 8 WHERE SalesPersonID IS NOT NULL 9 GROUP BY GROUPING SETS10 (11     (CustomerID, SalesPersonID, YEAR(OrderDate)),12     (CustomerID, SalesPersonID),13     (CustomerID, YEAR(OrderDate)),14     (SalesPersonID, YEAR(OrderDate)),15     (CustomerID),16     (SalesPersonID),17     (YEAR(OrderDate)),18     ()19 )20 GO

從代碼里可以看到,你必須指定每個可能的組合。因此用簡單的需求寫出這樣的查詢是個很困難的,笨重的工作。如果你使用CUBE從句而不是指定各個分組集的話,事情就變得簡單多了。我們來看下面的代碼。

 1 -- Calculates the power set of CustomerID, SalesPersonID, YEAR(OrderDate) with the CUBE subclause 2 SELECT 3     CustomerID,  4     SalesPersonID,  5     YEAR(OrderDate) AS 'OrderYear',  6     SUM(TotalDue) AS 'TotalDue' 7 FROM Sales.SalesOrderHeader 8 WHERE SalesPersonID IS NOT NULL 9 GROUP BY CUBE(CustomerID, SalesPersonID, YEAR(OrderDate))10 GO

從代碼里可以看到,你只要指定列,SQL Server本身就會生成它的冪集。于第一次列出的代碼,這個代碼簡單,精煉很多。

ROLLUP從句

CUBE從句外,自SQL Server 2008起,SQL Server也支持ROLLUP從句。使用ROLLUP從句你可以定義冪集的子集。ROLLUP從句也假設各個列間的層級。當你有3列:a,b,和c。當你使用ROLLUP(a,b,c),它會生成下列分組集:

  • (a,b,c)
  • (a,b)
  • (a)
  • ()

從這些獨立的分組集,你很容易看到在這些列之間有個層級。我們換用CustomerID, SalesPersonID和YEAR(OrderDate) 列,這里你就可以獲得這類分析查詢的實現思路。這是SSAS(SQL Server分析服務)的窮人做法。我們來看下列使用ROLLUP從句的查詢:

-- Calculates the following grouping sets:-- => (OrderYear, OrderMonth, OrderDay)-- => (OrderYear, OrderMonth)-- => (OrderYear)-- => ()SELECT    YEAR(OrderDate) AS 'OrderYear',     MONTH(OrderDate) AS 'OrderMonth',    DAY(OrderDate) AS 'OrderDay',    SUM(TotalDue) AS 'TotalDue'FROM Sales.SalesOrderHeaderWHERE SalesPersonID IS NOT NULLGROUP BY ROLLUP(YEAR(OrderDate), MONTH(OrderDate), DAY(OrderDate))GO

這個查詢的輸出給你下列各自分組集:

  • (OrderYear, OrderMonth, OrderDay)
  • (OrderYear, OrderMonth)
  • (OrderYear)
  • ()

ROLLUP從句有非常簡單的語法,但對于數據分析來說你的返回結果是非常強大的。

小結

我希望你對今天文章里,自SQL Server 2008引入的grouping sets功能里的CUBE和ROLLUP子句的介紹有所收獲。有空的話,不要吝嗇你的留言,告訴我你是否已經在你自己的數據庫里使用這些從句,或者你是否認為在你的環境里它們是有用的。

感謝關注!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品狠狠操| 亚洲欧美激情一区| 国产丝袜一区二区三区免费视频| 亚洲欧美国产精品久久久久久久| 国产91在线播放精品91| 成人免费在线视频网址| 久久久久女教师免费一区| 精品视频在线导航| 午夜精品久久久久久久白皮肤| 日韩欧美在线免费观看| 国产精品久久激情| 亚洲精品mp4| 日韩中文字幕网址| 久久精品久久久久| 成人欧美在线观看| 国产精品自产拍高潮在线观看| 国产精品国产三级国产aⅴ浪潮| 日本亚洲欧美三级| 97视频在线免费观看| 久久中国妇女中文字幕| 亚洲色图美腿丝袜| 日韩在线www| 亚洲国产成人爱av在线播放| 国产成人精品在线观看| 国产精品www色诱视频| 亚洲va欧美va国产综合剧情| 一本色道久久88亚洲综合88| 亚洲色图在线观看| 欧美丝袜一区二区| 疯狂欧美牲乱大交777| 久久久久久国产精品三级玉女聊斋| 伦理中文字幕亚洲| 国产精品久久久久久久久久久新郎| 韩国视频理论视频久久| 国内自拍欧美激情| 久久久爽爽爽美女图片| 日本不卡免费高清视频| 一区二区三区动漫| 蜜月aⅴ免费一区二区三区| 欧美黑人巨大xxx极品| 欧美亚洲国产视频小说| 78色国产精品| 国产精品久久久久久久久久久久久久| 国产极品精品在线观看| 日韩精品免费在线| 亚洲国产精品系列| 国产精品日韩在线播放| 国产精品aaaa| 国产精品91久久| 亚洲免费精彩视频| 91精品视频免费看| 亚洲片国产一区一级在线观看| 成人免费自拍视频| 亚洲女人被黑人巨大进入al| 国产成人小视频在线观看| 国产在线拍偷自揄拍精品| 亚洲免费中文字幕| 国产性色av一区二区| 欧美韩国理论所午夜片917电影| 不用播放器成人网| 久久天天躁日日躁| 久久人人爽人人爽人人片av高请| 日韩在线视频播放| 国产午夜精品全部视频播放| 国产一区二区三区在线免费观看| 中文在线资源观看视频网站免费不卡| 97在线视频免费看| 日本久久久a级免费| 清纯唯美日韩制服另类| 91美女福利视频高清| 日韩国产中文字幕| 亚洲欧洲xxxx| 国产美女精品视频| 国产精欧美一区二区三区| 日韩在线视频播放| 国产成人亚洲综合91精品| 亚洲 日韩 国产第一| 久久久噜噜噜久噜久久| 日本精品久久久久久久| 国产精品欧美一区二区| 狠狠躁夜夜躁人人爽天天天天97| 欧美性受xxx| 午夜精品一区二区三区在线| 丁香五六月婷婷久久激情| 欧美在线视频在线播放完整版免费观看| 亚洲欧美综合另类中字| 久久成年人视频| 亚洲国产精品国自产拍av秋霞| 中文字幕精品在线| 国产成人黄色av| 亚洲最新av在线网站| 国产精品wwww| 国产一区二区成人| 国产精品一区二区久久| 高清日韩电视剧大全免费播放在线观看| 国产精品久久久久久久久久ktv| 亚洲精品日韩丝袜精品| 777精品视频| 久久精品国产69国产精品亚洲| 精品美女久久久久久免费| 欧美精品生活片| 欧美在线免费观看| 日韩精品电影网| 自拍偷拍亚洲欧美| 91av在线影院| 欧美日韩性视频在线| 精品视频偷偷看在线观看| 欧美日韩亚洲一区二区| 日韩高清免费在线| 成人午夜小视频| 久久五月情影视| 久久精品亚洲一区| 亚洲福利小视频| 日韩av在线最新| 日韩网站在线观看| 亚洲最新中文字幕| 国产精品网红福利| 夜夜躁日日躁狠狠久久88av| 欧美一级淫片aaaaaaa视频| 国产男人精品视频| 国产精品视频99| 国产自产女人91一区在线观看| 91精品视频免费| 最近2019年中文视频免费在线观看| 欧美日韩亚洲视频| 亚洲欧美精品伊人久久| 亚洲精品欧美一区二区三区| 国产免费一区二区三区在线能观看| 亚洲国产精久久久久久| 91国产美女在线观看| 992tv在线成人免费观看| 91手机视频在线观看| 日韩中文在线观看| 成人精品视频99在线观看免费| 色多多国产成人永久免费网站| 久久精品国产亚洲一区二区| 欧美激情三级免费| 成人高清视频观看www| 北条麻妃99精品青青久久| 国产日韩av在线播放| 国产精品户外野外| 欧美另类精品xxxx孕妇| 久久免费视频这里只有精品| 97视频免费在线观看| 亚洲a一级视频| 亚洲va欧美va国产综合久久| 韩曰欧美视频免费观看| 日韩中文字幕在线看| 欧美做受高潮电影o| 91在线观看免费| 欧美国产日韩精品| 国产欧美精品在线| 国外视频精品毛片| 在线视频欧美日韩精品| 亚洲一级免费视频| 亚洲乱码一区av黑人高潮| 黑人巨大精品欧美一区二区三区| 97香蕉久久超级碰碰高清版| 久久久久久久久久久国产| 国产欧美日韩中文| 亚洲最大成人在线| 欧美性生活大片免费观看网址| 欧美大荫蒂xxx| 久久久国产一区|