SQL查詢-聚集查詢_第1頁
SQL查詢-聚集查詢_第2頁
SQL查詢-聚集查詢_第3頁
SQL查詢-聚集查詢_第4頁
SQL查詢-聚集查詢_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

7.3數據查詢

查詢語句的基本結構可描述為:

SELECT<目標列名序列>--需要哪些列

FROM<數據源>--來自于哪些表

[WHERE<檢索條件表達式>]--根據什么條件

[GROUPBY<分組依據列>][HAVING<組提取條件>][ORDERBY<排序依據列>]分類:單表查詢聚集查詢連接查詢嵌套查詢集合查詢POnoPorganizationPgroupPdateZhiDanShenHeVnoD2012001采購1組李明揚2012-6-1張兵劉洋S-01D2012002采購1組孟明霞2012-5-1田心劉洋S-02D2012003采購2組李欣2012-5-30張兵劉洋S-01D2012004采購3組楊光2012-6-15張兵劉洋S-03D2012005采購3組楊光2012-6-28張兵王剛S-05D2012006采購3組楊光2012-7-1田心王剛S-05D2012007采購2組李欣2012-7-10田心劉洋S-06D2012008采購2組李欣2012-7-5田心王剛S-04表7-11PurchaseOrder表數據數據查詢----聚集查詢查詢集合統(tǒng)計特性一、使用聚集函數二、使用GROUPBY子句一、使用聚集函數

主要聚集函數:計數COUNT(*):統(tǒng)計元組的個數。COUNT(<列名>):統(tǒng)計列值不為空的元組個數。SUM(<列名>):計算列值總和(必須是數值型列)。AVG(<列名>):計算列值平均值(必須是數值型列)。MAX(<列名>):求列值最大值(必須是數值型列或字符型列)。MIN(<列名>):求列值最小值(必須是數值型列或字符型列)。例25.統(tǒng)計采購訂單的總數量。

SELECTCOUNT(*)FROMPurchaseOrder思考:查詢結果有幾行幾列?統(tǒng)計采購員楊光采購訂單的總數量。

SELECTCOUNT(*)FROMPurchaseOrderWHEREPgroup='楊光'COUNT與空值:NumName40NULL50張力70董慶基于T1分析下面的查詢的結果:1)Selectcount(*)FromT12)Selectcount(Name)FromT1T1例26.

統(tǒng)計供應了商品的供應商的數量。

SELECTCOUNT(DISTINCTVno)FROMPurchaseOrder注:用DISTINCT以保證重復的供應商只計一次練習:1、查詢女生總人數。2、查詢登記了年齡信息的學生人數。3、查詢有學生選修的課程的數量。例27.計算訂單編號為“D2012001”的訂單訂購的商品總數量。

SELECTSUM(Quantity)FROMDetailofPOWHEREPOno='D2012001'例28.計算食品類商品的平均評估價格。

SELECTAVG(EvaluationPrice)FROMProductWHEREType='食品‘例29.查詢商品的最高評估價格和最低評估價格。

SELECTMAX(EvaluationPrice),MIN(EvaluationPrice)FROMProduct下例是錯誤的

SELECTPno,MAX(EvaluationPrice),MIN(EvaluationPrice)

FROMProduct

練習:4、查詢3號課程的最低分數、最高分數和平均分數。

二、對查詢分組

使用GROUPBY子句分組 細化聚集函數的作用對象Student學號Sno姓名Sname性別

Ssex年齡

Sage所在系

Sdept200215121200215122200215123200515125李勇劉晨王敏張立男女女男20191819CSCSMAISGROUPBY子句:

SELECTSdept

FROMStudent

GROUPBYSdept

SnoSdept…200215121CS…......對于Student表的實例而言,涉及‘CS’、‘MA’、‘IS’三個系SnoSdept……CS…...SnoSdept……IS…...SnoSdept……MA…...執(zhí)行結果:觀察:查詢結果有幾行?為什么?1.GROUPBY與聚集函數:細化聚集函數的作用對象查詢各個系的學生人數,列出系名和學生人數。SELECTSdept,

COUNT(*)FROMStudentGROUPBYSdept;說明:聚集查詢中出現的屬性(列)必須符合以下兩種條件之一:對列使用了聚集函數;列出現在GROUPBY子句中錯誤示例:SELECTSno,Sdept,COUNT(*)FROMStudentGROUPBYSdept;例30.統(tǒng)計每張訂單訂購的商品總數量,列出訂單編號和訂購數量。

SELECTPOnoAS訂單編號,SUM(Quantity)AS訂購數量FROMDetailofPO

GROUPBYPOno例31.統(tǒng)計每類商品的品種數量和平均評估價格SELECTType商品種類,COUNT(Pno)品種數量,AVG(EvaluationPrice)平均價格FROMProduct

GROUPBYType2.GROUPBY與WHERE:對于所屬國家為中國的供應商,查詢各類資質等級的供應商數量SELECTQuaGrade,COUNT(*)FROMVendorWHERECountry='中國'

GROUPBYQuaGrade;

聚集查詢結果二者關系:先執(zhí)行WHERE,再執(zhí)行GROUPBY。3.GROUPBY與ORDERBY:聚集查詢結果說明:排序字段是某一集合特性對于所屬國家為中國的供應商,查詢各類資質等級的供應商數量,按照供應商數量降序排列SELECTQuaGrade,COUNT(*)FROMVendorWHERECountry='中國'

GROUPBYQuaGradeOrderBYCOUNT(*)DESC;

4.次級分組:可以有多個分組字段假設有庫存表以及下列一組數據:SELECT品名,顏色,sum(數量)數量FROM庫存表GROUPBY品名,顏色執(zhí)行下面的查詢:分析:查詢結果有幾行?說明:結果行數取決于最細層分組數聚集函數也是針對最細層分組進行計算練習:5、查詢各個學院男、女生各有多少人。6.使用HAVING短語對分組作篩選:例32.查詢訂購商品總數量在100以上的采購訂單編號和訂購數量。

SELECTPOnoAS訂單編號,SUM(Quantity)AS訂購數量FROMDetailofPOGROUPBYPOno

HAVINGSUM(Quantity)>100說明:HAVING不能單

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論