SQL 使用 group by 子句按照班级(classes)进行分组

SQL 使用 group by 子句按照班级(classes)进行分组

SQL 使用 group by 子句按照班级(classes)进行分组

SQL 中,使用 GROUP BY 子句是一种对数据进行分组的方法。通过 GROUP BY 子句,我们可以按照指定的列对数据进行分组,然后对每个组进行聚合操作,如 COUNT、SUM、AVG 等。

在本文中,我们将以一个学生信息表为例,演示如何使用 GROUP BY 子句按照班级(classes)进行分组,以及对每个班级进行统计操作。

准备数据表

首先,让我们创建一个名为 students 的学生信息表,表结构如下:

CREATE TABLE students (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    class VARCHAR(10),
    score INT
);

INSERT INTO students VALUES (1, 'Alice', 'A', 85);
INSERT INTO students VALUES (2, 'Bob', 'A', 90);
INSERT INTO students VALUES (3, 'Charlie', 'B', 75);
INSERT INTO students VALUES (4, 'David', 'B', 80);
INSERT INTO students VALUES (5, 'Eve', 'A', 95);

以上 SQL 代码创建了一个名为 students 的表,包含 id、name、class 和 score 四个字段,然后插入了五条学生信息记录。

使用 GROUP BY 子句按班级分组

现在,让我们来使用 GROUP BY 子句按照班级(classes)进行分组,统计每个班级的学生人数和平均成绩。

SELECT class, COUNT(*) as total_students, AVG(score) as average_score
FROM students
GROUP BY class;

上面的 SQL 查询语句中,我们对 students 表按照 class 字段进行分组,然后使用 COUNT(*) 统计每个班级的学生人数,使用 AVG(score) 计算每个班级的平均成绩。

运行结果

按照上面的 SQL 查询语句,我们可以得到以下结果:

class total_students average_score
A 3 90
B 2 77.5

从结果中可以看出,班级 A 共有 3 名学生,平均成绩为 90;班级 B 共有 2 名学生,平均成绩为 77.5。

结论

在 SQL 中,使用 GROUP BY 子句按照指定列进行分组是一种强大的数据处理方法。通过 GROUP BY 子句,我们可以快速对数据进行分组统计,从而得到想要的分析结果。在实际应用中,可以根据具体的需求,结合其他 SQL 查询语句和函数,实现更复杂的数据分析和报表生成。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程