📜  mysql 分组函数 - SQL (1)

📅  最后修改于: 2023-12-03 15:33:02.934000             🧑  作者: Mango

MySQL 分组函数 - SQL

MySQL 分组函数是一类 SQL 函数,可以对指定的数据列进行分组计算,比如求和、平均、最大、最小等。它们通常与 GROUP BY 语句一起使用。

常见的 MySQL 分组函数
COUNT 函数

COUNT 函数返回一列的行数。还可以使用 COUNT(*),返回所有行的行数。可以配合 GROUP BY 使用,统计每个分组的行数。

SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;
SUM 函数

SUM 函数用来计算指定列中数值的总和。

SELECT SUM(column_name) FROM table_name;
AVG 函数

AVG 函数用来计算指定列中数值的平均值。

SELECT AVG(column_name) FROM table_name;
MAX 函数

MAX 函数用来查找指定列中的最大值。

SELECT MAX(column_name) FROM table_name;
MIN 函数

MIN 函数用来查找指定列中的最小值。

SELECT MIN(column_name) FROM table_name;
案例演示

比如有一个 users 表,记录了用户的信息,包括 id、name、age、gender、salary。

CREATE TABLE users (
  id INT,
  name VARCHAR(50),
  age INT,
  gender CHAR(1),
  salary FLOAT
);

我们可以通过以下语句统计男女员工的平均薪资:

SELECT gender, AVG(salary) FROM users GROUP BY gender;

输出结果:

+--------+-------------+
| gender | AVG(salary) |
+--------+-------------+
| M      |  5000.00000 |
| F      |  5500.00000 |
+--------+-------------+

也可以按照年龄段分组统计员工的人数:

SELECT 
  CASE 
    WHEN age BETWEEN 20 AND 29 THEN '20-29' 
    WHEN age BETWEEN 30 AND 39 THEN '30-39'
    ELSE '40+' 
  END AS age_group, 
  COUNT(*) 
FROM users GROUP BY age_group;

输出结果:

+-----------+----------+
| age_group | COUNT(*) |
+-----------+----------+
| 20-29     |        2 |
| 30-39     |        2 |
| 40+       |        1 |
+-----------+----------+

以上就是 MySQL 分组函数的简要介绍和使用方法。