MySQL分組查詢
分組查詢是指根據一個或者多個列的值將數據分為若干個組,然后對每個組進行相應的聚合操作。MySQL中的分組查詢可以使用GROUP BY子句實現。
GROUP BY子句
GROUP BY子句根據指定的列對查詢結果進行分組。例如,假設我們有一個學生表,其中包含學生的姓名、班級、和成績。要計算每個班級的平均成績,可以使用以下語句:
SELECT class, AVG(score) FROM student GROUP BY class
聚合函數
在GROUP BY子句中,可以結合使用聚合函數對數據進行統計。常見的聚合函數包括:
SUM:計算指定列的總和
AVG:計算指定列的平均值
MAX:返回指定列的最大值
MIN:返回指定列的最小值
COUNT:返回指定列的行數
使用條件求和函數
MySQL中提供了條件求和函數SUM(IF(condition, value, 0))。該函數根據condition判斷是否計算value,如果滿足條件則計算,否則返回0。例如,我們需要計算學生表中班級為一年級且成績大于80分的學生總分,則可以使用以下語句:
SELECT class, SUM(IF(class='一年級' AND score>80, score, 0)) FROM student GROUP BY class