国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

探討SQL compute by的使用分析

2024-08-31 00:57:27
字體:
來源:轉載
供稿:網(wǎng)友

GROUP BY子句有個缺點,就是返回的結果集中只有合計數(shù)據(jù),而沒有原始的詳細記錄。如果想在SQL SERVER中完成這項工作,可以使用COMPUTE BY子句。COMPTE生成合計作為附加的匯總列出現(xiàn)在結果集的最后。當與BY一起使用時,COMPUTE 子句在結果集內(nèi)生成控制中斷和分類匯總。

下列 SELECT 語句使用簡單 COMPUTE 子句生成 titles 表中 price 及 advance 的求和總計:

復制代碼 代碼如下:


USE pubs
SELECT type, price, advance
FROM titles
ORDER BY type
COMPUTE SUM(price), SUM(advance)


下列查詢在 COMPUTE 子句中加入可選的 BY 關鍵字,以生成每個組的小計:

USE pubs

復制代碼 代碼如下:


SELECT type, price, advance
FROM titles
ORDER BY type
COMPUTE SUM(price), SUM(advance) BY type


此 SELECT 語句的結果用12 個結果集返回,六個組中的每個組都有兩個結果集。每個組的第一個結果集是一個行集,其中包含選擇列表中所請求的信息。每個組的第二個結果集包含 COMPUTE 子句中兩個 SUM 函數(shù)的小計。

compute by 子句的規(guī)則:

(1)不能將distinct與行統(tǒng)計函數(shù)一起使用

(2)compute ??? by 子句中 ???出的列必須出現(xiàn)在選擇列表中

(3)不能在含有compute by 子句的語句中使用select into 子句,因為包括compute 子句的語句會產(chǎn)生不規(guī)則的行。

(4)如果使用了compute by子句,則必須使用order by 子句, 而且compute by子句中的列必須包含在order by 子句中,并且對列的前后順序和起始項都要一致(說白了compute by子句中的列必須是order by子句中列表的全部,或者前邊的連續(xù)幾個)。

(5)如果compute 省略了 by ,則order by 也可以省略

(6)如果compute by 子句包含多列時,會將一個組(第一個列分的組)分成若干個子組(利用后面的列),并對每層子組進行統(tǒng)計。

(7)使用多個compute by子句時,會分別按不同的組統(tǒng)計出結果。詳細信息還是按照正常的第一個分組方式顯示。

(8)compute by 子句中可以使用多個統(tǒng)計函數(shù),他們互不影響

(9)compute by 子句中可以不包含by ,而只用compute 此時不對前面信息分組,而只對全部信息進行統(tǒng)計。

比較 COMPUTE 和 GROUP BY
COMPUTE 和 GROUP BY 之間的區(qū)別匯總如下:
GROUP BY 生成單個結果集。每個組都有一個只包含分組依據(jù)列和顯示該組子聚合的聚合函數(shù)的行。選擇列表只能包含分組依據(jù)列和聚合函數(shù)。

COMPUTE 生成多個結果集。一類結果集包含每個組的明細行,其中包含選擇列表中的表達式。另一類結果集包含組的子聚合,或 SELECT 語句
的總聚合。選擇列表可包含除分組依據(jù)列或聚合函數(shù)之外的其它表達式。聚合函數(shù)在 COMPUTE 子句中指定,而不是在選擇列表中。
下列查詢使用 GROUP BY 和聚合函數(shù);該查詢將返回一個結果集,其中每個組有一行,該行中包含該組的聚合小計:
USE pubs
SELECT type, SUM(price), SUM(advance)
FROM titles
GROUP BY type

說明 在 COMPUTE 或 COMPUTE BY 子句中,不能包含 ntext、text 或 image 數(shù)據(jù)類型。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 台江县| 桐城市| 正蓝旗| 蒙城县| 会东县| 洛浦县| 五家渠市| 漠河县| 巩留县| 敦化市| 海宁市| 石嘴山市| 辽宁省| 东海县| 梨树县| 仁化县| 银川市| 乌鲁木齐县| 雷山县| 沈阳市| 鄂托克前旗| 蒙阴县| 阿图什市| 凌云县| 保定市| 搜索| 新竹县| 肥东县| 若羌县| 容城县| 合作市| 澄江县| 滦南县| 东丽区| 托克逊县| 泰宁县| 双辽市| 五指山市| 侯马市| 沅江市| 大城县|