- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
聚合函的摘要查明聚合函可以行取位值的平均和函以便提供一步位料的分析果指令述有聚合函摘要查常用的聚合函明如右表所示函明算式算算式算位平均值算式取得位的最大值算式取得位的最小值算式取得位的函指令可以配合函算查的可以料表的所有或指定位算位不是空值的指令查生料表的生如下所示生生函指令只需配合函就可以算指定位的平均值指令在工料表查工薪水的平均值如下所示薪水平均薪水工函指令配合函可以算符合件的位最大值指令在工料表查保金第一名工的金如下所示保保金工函指令配合函可以算出符合件的位最小值指令在工料表查保金最後一名
8-5 聚合函數的摘要查詢-說明 聚合函數(Aggregate Functions)可以進行選取記錄欄位值的筆數、平均、範圍和統計函數,以便提供進一步欄位資料的分析結果。 SELECT指令敘述擁有聚合函數稱為摘要查詢(Summary Query)。常用的聚合函數說明,如右表所示: 函數 說明 COUNT(運算式) 計算記錄筆數 AVG(運算式) 計算欄位平均值 MAX(運算式) 取得記錄欄位的最大值 MIN(運算式) 取得記錄欄位的最小值 SUM(運算式) 取得記錄欄位的總計 8-5-1 COUNT()函數 SQL指令可以配合COUNT()函數計算查詢的記錄數,「*」參數可以統計資料表的所有記錄數,或指定欄位來計算欄位不是空值的記錄數。 SQL指令碼檔:Ch8_5_1_01.sql 查詢【學生】資料表的學生總數,如下所示: SELECT COUNT(*) AS 學生數 FROM 學生 8-5-2 AVG()函數 SQL指令只需配合AVG()函數,就可以計算指定欄位的平均值。 SQL指令碼檔:Ch8_5_2_01.sql 在【員工】資料表查詢員工薪水的平均值,如下所示: SELECT AVG(薪水) AS 平均薪水 FROM 員工 8-5-3 MAX()函數 SQL指令配合MAX()函數,可以計算符合條件記錄的欄位最大值。 SQL指令碼檔:Ch8_5_3_01.sql 在【員工】資料表查詢保險金額第一名員工的金額,如下所示: SELECT MAX(保險) AS 保險金額 FROM 員工 8-5-4 MIN()函數 SQL指令配合MIN()函數,可以計算出符合條件記錄的欄位最小值。 SQL指令碼檔:Ch8_5_4_01.sql 在【員工】資料表查詢保險金額最後一名員工的金額,如下所示: SELECT MIN(保險) AS 保險金額 FROM 員工 8-5-5 SUM()函數 SQL指令配合SUM()函數,可以計算出符合條件記錄的欄位總和。 SQL指令碼檔:Ch8_5_5_01.sql 在【員工】資料表計算員工的薪水總和和平均,如下所示: SELECT SUM(薪水) AS 薪水總額, SUM(薪水)/COUNT(*) AS 薪水平均 FROM 員工 8-6 群組查詢GROUP BY子句 8-6-1 GROUP BY子句 8-6-2 HAVING子句 8-6-3 WITHROLLUP和WITH CUBE片語 8-6-4 GROUPING SETS子句 8-6-1 GROUP BY子句-說明 群組是以資料表的指定欄位來進行分類,分類方式是將欄位值中重複值結合起來歸成一類。例如:在【班級】資料表統計每一門課有多少位學生上課的學生數,【課程編號】欄位是建立群組的欄位,可以將修此課程的學生結合起來,如下圖所示: 8-6-1 GROUP BY子句-語法 在SQL語言是使用GROUP BY子句來指定群組欄位,其語法如下所示: GROUP BY 欄位清單 上述語法的欄位清單就是建立群組的欄位,如果不只一個,請使用「,」逗號分隔。 8-6-1 GROUP BY子句-條件 當使用GOUP BY進行查詢時,資料表需要滿足一些條件,如下所示: 資料表的欄位擁有重複值,可以結合成群組。 資料表擁有其他欄位可以配合聚合函數進行資料統計,如下表所示: 函數 進行的資料統計 AVG()函數 計算各群組的平均 SUM()函數 計算各群組的總和 COUNT()函數 計算各群組的記錄數 8-6-1 GROUP BY子句-範例1 SQL指令碼檔:Ch8_6_1_01.sql 在【班級】資料表查詢課程編號和計算每一門課程有多少位學生上課,如下所示: SELECT 課程編號, COUNT(*) AS 學生數 FROM 班級 GROUP BY 課程編號 8-6-1 GROUP BY子句-範例2 SQL指令碼檔:Ch8_6_1_02.sql 在【學生】資料表查詢統計性別男和女的學生數,如下所示: SELECT 性別, COUNT(*) AS 學生數 FROM 學生 GROUP BY 性別 8-6-2 HAVING子句-語法 GROUP BY子句可以配合HAVING子句來指定搜尋條件,以便進一步縮小查詢範圍,其語法如下所示: HAVING 搜尋條件 HAVING子句和WHRE子句的差異,如下所示: HAVING子句可以使用聚合函數,但WHERE子句不可以。 在HAVING子句條件所參考的欄位一定屬於SELECT子句的欄位清單;WHERE子句則可以參考FORM子句資料表來源的所有欄位。 8-6-2 HAVING子句-範例1 SQL指令碼檔:Ch8_6_2_01.sql 在【班級】資料表找出學生S002所上課的課程清單,如下所示: SELECT
原创力文档


文档评论(0)