MySQL 中有一個非常有用的聚合函數叫做 AVG,它用于計算某個屬性在數據庫中所有行的平均值。而當我們需要對數據進行分類統計時,可以使用 GROUP BY 子句對數據集進行分組。在本文中,我們將學習如何使用 MySQL 中的 AVG 函數和 GROUP BY 子句進行計算和分類統計。
為了演示如何使用 AVG 和 GROUP BY,我們假設有一個名為 employee 的表,其中包括員工的 ID(id),名字(name),年齡(age)和工資(salary)等屬性。將以下 SQL 語句插入到 employee 表中:
INSERT INTO employee(id, name, age, salary) VALUES(1, 'John', 35, 5000); INSERT INTO employee(id, name, age, salary) VALUES(2, 'Jane', 25, 4000); INSERT INTO employee(id, name, age, salary) VALUES(3, 'Peter', 30, 6000); INSERT INTO employee(id, name, age, salary) VALUES(4, 'Tom', 28, 4500); INSERT INTO employee(id, name, age, salary) VALUES(5, 'Mike', 32, 5500); INSERT INTO employee(id, name, age, salary) VALUES(6, 'Marry', 29, 4800);
現在我們想要計算所有員工的平均工資,可以使用以下 SQL 語句:
SELECT AVG(salary) AS average_salary FROM employee;
執行以上 SQL 語句后,會得到以下結果:
+----------------+ | average_salary | +----------------+ | 5000.0000 | +----------------+
除了計算整個表的平均工資外,我們也可以按照年齡分組來統計每組員工的平均工資。可以使用以下 SQL 語句:
SELECT age, AVG(salary) AS average_salary FROM employee GROUP BY age;
執行以上 SQL 語句后,會得到以下結果:
+-----+----------------+ | age | average_salary | +-----+----------------+ | 25 | 4000.0000 | | 28 | 4500.0000 | | 29 | 4800.0000 | | 30 | 6000.0000 | | 32 | 5500.0000 | | 35 | 5000.0000 | +-----+----------------+
以上 SQL 語句會根據年齡將表 employee 分成 6 組,并計算每組員工的平均工資。
綜上所述,使用 AVG 函數和 GROUP BY 子句可以方便我們計算和分類統計大量數據,是 MySQL 中非常實用的特性之一。我們可以將其用于很多場景,例如統計用戶的平均年齡、每個城市的平均租金等等。相信隨著使用的不斷深入,你會發現它的美妙之處。