最近中文字幕大全|熟女少妇精品一区二区|国产网红主播精品一区|日本一区二区精品理论电影|欧洲少妇无码精品视频在线|久久国产精品永久免费网站|人妻无码久久一区二区免费麻豆|国产日韩欧美一区二区在线高清

十二年專注于品牌網(wǎng)站建設(shè) 十余年專注于網(wǎng)站建設(shè)_小程序開發(fā)_APP開發(fā),低調(diào)、敢創(chuàng)新、有情懷!
南昌百恒網(wǎng)絡(luò)微信公眾號 掃一掃關(guān)注
小程序
tel-icon全國服務(wù)熱線:400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號
掃一掃打開百恒網(wǎng)絡(luò)微信小程序

百恒網(wǎng)絡(luò)

南昌百恒網(wǎng)絡(luò)

group by使用方及規(guī)則

百恒網(wǎng)絡(luò) 2012-06-21 7440

group by 語法在數(shù)據(jù)查詢和統(tǒng)計方面我們經(jīng)常要用到,例如:要統(tǒng)計每個用戶對產(chǎn)品評論數(shù)量,工資傭金,業(yè)績等統(tǒng)計中都要按某個進(jìn)行分組統(tǒng)講,下面向大家介紹GROUP BY語法.

group by語法可以根據(jù)給定數(shù)據(jù)列的每個成員對查詢結(jié)果進(jìn)行分組統(tǒng)計,最終得到一個分組匯總表。SELECT子句中的列名必須為分組列或列函數(shù)。列函數(shù)對于GROUP BY子句定義的每個組各返回一個結(jié)果。 某個員工信息表結(jié)構(gòu)和數(shù)據(jù)如下:

id name dept salary edlevel hiredate

1 張三 開發(fā)部 2000 3 2009-10-11

2 李四 開發(fā)部 2500 3 2009-10-01

3 王五 設(shè)計部 2600 5 2010-10-02

4 王六 設(shè)計部 2300 4 2010-10-03

5 馬七 設(shè)計部 2100 4 2010-10-06

6 趙八 銷售部 3000 5 2010-10-05

7 錢九 銷售部 3100 7 2010-10-07

8 孫十 銷售部 3500 7 2010-10-06

例如,我想列出每個部門最高薪水的結(jié)果,sql語句如下:

SELECT DEPT, MAX(SALARY) AS MAXIMUM FROM STAFF GROUP BY DEPT

查詢結(jié)果如下:

DEPT MAXIMUM

開發(fā)部 2500

設(shè)計部 2600

銷售部 3500

解釋一下這個結(jié)果:

1、滿足“SELECT子句中的列名必須為分組列或列函數(shù)”,因為SELECT有GROUP BY DEPT中包含的列DEPT。

2、“列函數(shù)對于GROUP BY子句定義的每個組各返回一個結(jié)果”,根據(jù)部門分組,對每個部門返回一個結(jié)果,就是每個部門的最高薪水。

注意:計算的是每個部門(由 GROUP BY 子句定義的組)而不是整個公司的 MAX(SALARY)。

例如,查詢每個部門的總的薪水?dāng)?shù)

SELECT DEPT, sum( SALARY ) AS total

FROM STAFF

GROUP BY DEPT

查詢結(jié)果如下:

DEPT total

開發(fā)部 4500

設(shè)計部 7000

銷售部 9600

將 WHERE 子句與 GROUP BY 子句一起使用分組查詢可以在形成組和計算列函數(shù)之前具有消除非限定行的標(biāo)準(zhǔn) WHERE 子句。必須在GROUP BY 子句之前指定 WHERE 子句。

例如,查詢公司2010年入職的各個部門每個級別里的最高薪水

SELECT DEPT, EDLEVEL, MAX( SALARY ) AS MAXIMUM

FROM staff

WHERE HIREDATE > '2010-01-01'

GROUP BY DEPT, EDLEVEL

ORDER BY DEPT, EDLEVEL

查詢結(jié)果如下:

DEPT EDLEVEL MAXIMUM

設(shè)計部 4 2300

設(shè)計部 5 2600

銷售部 5 3000

銷售部 7 3500

注意:在SELECT語句中指定的每個列名也在GROUP BY子句中提到。未在這兩個地方提到的列名將產(chǎn)生錯誤。

GROUP BY子句對DEPT和EDLEVEL的每個唯一組合各返回一行。 在GROUP BY子句之后使用HAVING子句可應(yīng)用限定條件進(jìn)行分組,以便系統(tǒng)僅對滿足條件的組返回結(jié)果。為此,在GROUP BY子句后面包含一個HAVING子句。HAVING子句可包含一個或多個用AND和OR連接的謂詞。每個謂詞將組特性(如AVG(SALARY))與下列之一進(jìn)行比較:

例如:尋找雇員數(shù)超過2個的部門的最高和最低薪水:

SELECT DEPT, MAX( SALARY ) AS MAXIMUM, MIN( SALARY ) AS MINIMUM

FROM staff

GROUP BY DEPT

HAVING COUNT( * ) >2

ORDER BY DEPT

查詢結(jié)果如下:

DEPT MAXIMUM MINIMUM

設(shè)計部 2600 2100

銷售部 3500 3000

例如:尋找雇員平均工資大于3000的部門的最高和最低薪水:

SELECT DEPT, MAX( SALARY ) AS MAXIMUM, MIN( SALARY ) AS MINIMUM

FROM staff

GROUP BY DEPT

HAVING AVG( SALARY ) >3000

ORDER BY DEPT

查詢結(jié)果如下:

DEPT MAXIMUM MINIMUM

銷售部 3500 3000

希望本文對廣大站長或從事企業(yè)網(wǎng)站建設(shè)公司的團(tuán)隊有所幫助,如對此不太理解的,可以與南昌網(wǎng)絡(luò)公司百恒網(wǎng)絡(luò)技術(shù)部聯(lián)系。我們很高興與廣大站長和從事企業(yè)網(wǎng)站建設(shè)公司技術(shù)人員分享我們的技術(shù)和經(jīng)驗。


400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號
掃一掃打開百恒網(wǎng)絡(luò)小程序

歡迎您的光顧,我們將竭誠為您服務(wù)×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務(wù) 售后服務(wù)
 
售后服務(wù) 售后服務(wù)
 
備案專線 備案專線
 
×