国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Oracle中用GROUPING SETS分組自定義匯總

瀏覽:5日期:2023-11-26 08:46:39
本文通過文章作者的親身經歷來講解如何在Oracle數據庫中使用GROUPING SETS分組自定義。 當你與COUNT和SUM這類總計函數一起使用GROUP BY語句時,你一般得不到多級總數。GROUP BY中每個唯一的列組合生成一個總數,但這些總數不會“累加”到更高一級的總數中。 要實現這一點,你可以用GROUP BY ROLLUP或GROUP BY CUBE替代GROUP BY,不過它們會生成所有可能的總數,而你可能不需要全部總數。對GROUP BY CUBE而言,將會生成2^n組總數,這里的n是GROUP BY中列的數目。 查看下面的查詢,它使用了SH樣本模式: SELECT prod_id, cust_id, channel_id, SUM(quantity_sold)FROM salesWHERE cust_id < 3GROUP BY CUBE (prod_id, cust_id, channel_id)這將生成8組總數: 所有行的總和 每個通道,包括所有產品和顧客。 每個顧客,包括所有產品和通道。 每項產品,包括所有顧客和通道。 每個通道/顧客組合,包括所有產品。 每個通道/產品組合,包括所有顧客。 每個產品/顧客組合,包括所有通道。 每個產品、顧客和通道組合。 可能的組合非常多。GROUP BY CUBE中每增加一列,生成的總數就會翻一番。 可以用GROUP BY GROUPING SETS來代替GROUP BY CUBE。你可以應用來指定你感愛好的總數組合。因為它不必計算它不需要集合(也不會產生太多結果),所以對SQL引擎來說更為高效。 其格式為: GROUP BY GROUPING SETS ((list), (list) ... )這里(list)是圓括號中的一個列序列,這個組合生成一個總數。要增加一個總和,必須增加一個(NUlL)分組集。 例如,假如只要生成每項產品(包括所有顧客和通道)和每個顧客/通道組合(包括所有產品)的總數,可以輸入: SELECT prod_id, cust_id, channel_id, SUM(quantity_sold)FROM salesWHERE cust_id < 3GROUP BY GROUPING SETS ((prod_id), (cust_id, channel_id));這種方法將這個數據集生成的總數數量從180個減少到37個,并幫助你著重回答你希望解答的問題。
標簽: Oracle 數據庫
主站蜘蛛池模板: 国产黄页 | 波多野结衣中文一区二区免费 | 97公开免费视频 | 国产香蕉98碰碰久久人人 | 国产大片在线观看 | 欧美一级特黄aa大片视频 | 免费一级毛片在线播放放视频 | 亚洲黄色免费在线观看 | 欧美成人观看视频在线 | 国产精品久久久久久久久久久搜索 | 亚洲国语在线视频手机在线 | 免费观看情趣v视频网站 | 欧美成人性色区 | 在线成人免费看大片 | 写真片福利视频在线播放 | 深夜福利视频在线观看免费视频 | 午夜国产理论 | 国产浮力第一页草草影院 | 国产中文久久精品 | 欧美 亚洲 另类 自拍 在线 | 草草视频免费在线观看 | 99国产精品久久久久久久... | 国产成人盗拍精品免费视频 | 精品成人在线 | 一区二区三区免费观看 | 99国产精品久久久久久久... | 免费v片在线观看 | 日本视频在线免费观看 | 欧美激情毛片裸推荐 | 在线视频久草 | 欧美在线乱妇一级毛片 | 啪啪一级| 美女的被男人桶爽网站 | 在线免费观看国产视频 | 香港台湾经典三级a视频 | 久久综合九九亚洲一区 | 久久国产成人亚洲精品影院老金 | 国产一区二区在线 |播放 | 欧美成人毛片免费网站 | 久久国产情侣 | 亚洲精品国产成人 |