干熟妇在线视频午夜剧场一级A级|99成人香视频日本两性激情视频|久久 午夜福利无码精品人妻一区|热久久超碰精品精品少妇一区二区|五月天综合在线国产一区免费视频|亚洲成人中心热re久久99|亚洲国产怡红院丁香五月综合h|玖玖九久久久午夜射精视频

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

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

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

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

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

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

group by語法可以根據(jù)給定數(shù)據(jù)列的每個(gè)成員對(duì)查詢結(jié)果進(jìn)行分組統(tǒng)計(jì),最終得到一個(gè)分組匯總表。SELECT子句中的列名必須為分組列或列函數(shù)。列函數(shù)對(duì)于GROUP BY子句定義的每個(gè)組各返回一個(gè)結(jié)果。 某個(gè)員工信息表結(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è)計(jì)部 2600 5 2010-10-02

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

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

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

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

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

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

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

查詢結(jié)果如下:

DEPT MAXIMUM

開發(fā)部 2500

設(shè)計(jì)部 2600

銷售部 3500

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

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

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

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

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

SELECT DEPT, sum( SALARY ) AS total

FROM STAFF

GROUP BY DEPT

查詢結(jié)果如下:

DEPT total

開發(fā)部 4500

設(shè)計(jì)部 7000

銷售部 9600

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

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

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è)計(jì)部 4 2300

設(shè)計(jì)部 5 2600

銷售部 5 3000

銷售部 7 3500

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

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

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

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è)計(jì)部 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

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


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

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

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