在 MySQL 中,可以使用 CASE 语句和 GROUP BY 语句共同使用来对数据进行分组和聚合。下面是一个示例:

假设有一个名为 'students' 的表,包含以下列:id、name、gender 和 score。

要求按照性别统计每个性别的学生总数、平均分和最高分,可以使用以下 SQL 查询:

SELECT
    gender,
    COUNT(*) AS total_students,
    AVG(score) AS average_score,
    MAX(score) AS max_score
FROM
    students
GROUP BY
    gender;

在上述查询中,GROUP BY 语句根据性别对数据进行分组,然后通过 COUNT 函数计算每个分组中的学生总数,通过 AVG 函数计算每个分组中学生的平均分,通过 MAX 函数计算每个分组中学生的最高分。

注意,CASE 语句可以在 SELECT 语句中使用,用于根据条件返回不同的值。在上述查询中,如果需要对某些特定的条件进行统计,可以在 SELECT 语句中使用 CASE 语句来实现。例如,如果需要统计每个性别中及格(分数大于等于 60)的学生数量,可以修改查询如下:

SELECT
    gender,
    COUNT(*) AS total_students,
    SUM(CASE WHEN score >= 60 THEN 1 ELSE 0 END) AS passed_students
FROM
    students
GROUP BY
    gender;

在上述查询中,使用 CASE 语句来判断每个学生的分数是否大于等于 60,如果是则返回 1,否则返回 0。然后使用 SUM 函数对这些值进行求和,得到每个性别中及格的学生数量。

MySQL CASE 语句和 GROUP BY 语句联合使用详解

原文地址: https://www.cveoy.top/t/topic/qsSO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录