MySQL是一種常用的關系型數據庫管理系統(RDBMS),在數據處理和分析中廣泛應用。MySQL提供了許多聚合函數,用于對數據進行分組并返回總和、平均值、最大值、最小值等結果。
SELECT 函數名稱(列名) FROM 表名;
下面我們將介紹七個常用的MySQL聚合函數:
AVG(): 返回指定列的平均值。 MAX(): 返回指定列的最大值。 MIN(): 返回指定列的最小值。 SUM(): 返回指定列的總和。 COUNT(): 返回指定列的行數。 COUNT(DISTINCT 列名): 返回指定列不同值的行數。 GROUP_CONCAT(): 返回指定列的所有值,以逗號分隔。
下面我們通過一個簡單的例子來演示這些函數的用法:
CREATE TABLE students ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20), age INT, gender VARCHAR(5), score INT ); INSERT INTO students (name, age, gender, score) VALUES ('張三', 18, '男', 90), ('李四', 19, '女', 80), ('王五', 20, '女', 85), ('趙六', 21, '男', 95), ('孫七', 22, '女', 75);
假設我們要統計學生表中男生的平均分、女生的最高分、各個年齡段的學生人數和所有學生的總分數,可以這樣查詢:
SELECT AVG(score) AS 男生平均分, MAX(score) AS 女生最高分, COUNT(*) AS 學生總數, SUM(score) AS 總分數 FROM students WHERE gender = '男' OR gender = '女' GROUP BY gender WITH ROLLUP;
該查詢將按照性別分組計算平均分和最高分,并統計學生總數和總分數。其中,GROUP BY子句指定按照gender列分組,WITH ROLLUP子句指定在結果集中添加小計行和總計行。
另外,COUNT()函數可以用于統計指定列不同值的行數。例如,我們可以用COUNT(DISTINCT age)來統計不同年齡的學生數:
SELECT COUNT(DISTINCT age) FROM students;
最后一個函數是GROUP_CONCAT(),它可以返回指定列的所有值,以逗號分隔。例如,我們可以用GROUP_CONCAT(name)來列出所有學生的姓名:
SELECT GROUP_CONCAT(name) FROM students;
總之,MySQL的聚合函數大大簡化了數據處理和分析的過程,使我們能夠更快捷地了解數據的特點和規律。掌握這些函數的用法對于日常工作和學習都非常有幫助。
上一篇MySQL的三種安裝類型
下一篇mysql的一行變多列