1 SQL中的聚合函數(shù)
2.GROUP BY語(yǔ)句
??GROUP BY語(yǔ)句用來(lái)與聚合函數(shù)(aggregate functions such as COUNT, SUM, AVG, MIN, or MAX.)聯(lián)合使用來(lái)得到一個(gè)或多個(gè)列的結(jié)果集搔体。
??語(yǔ)法如下:
SELECT column1, column2, ... column_n, aggregate_function (expression)
FROM tables
WHERE predicates
GROUP BY column1, column2, ... column_n;
??示例:
-- 查詢學(xué)生選擇課程數(shù)
SELECT id, COUNT(course) as numcourse
FROM student
GROUP BY id
??注意
??因?yàn)榫酆虾瘮?shù)通過(guò)作用于一組數(shù)據(jù)而只返回一個(gè)單個(gè)值本昏,因此疾就,在SELECT語(yǔ)句中出現(xiàn)的元素要么為一個(gè)聚合函數(shù)的輸入值字柠,要么為GROUP BY語(yǔ)句的參數(shù)态兴,否則會(huì)出錯(cuò)博敬。
3. HAVING語(yǔ)句
??HAVING語(yǔ)句通常與GROUP BY語(yǔ)句聯(lián)合使用怔昨,用來(lái)過(guò)濾由GROUP BY語(yǔ)句返回的記錄集。
??HAVING語(yǔ)句的存在彌補(bǔ)了WHERE關(guān)鍵字不能與聚合函數(shù)聯(lián)合使用的不足扶关。
??語(yǔ)法:
SELECT column1, column2, ... column_n, aggregate_function (expression)
FROM tables
WHERE predicates
GROUP BY column1, column2, ... column_n
HAVING condition1 ... condition_n;
??示例:
-- 查詢平均分高于80分的學(xué)生記錄可以這樣寫:
SELECT id, COUNT(course) as numcourse, AVG(score) as avgscore
FROM student
GROUP BY id
HAVING AVG(score)>=80;