mysql分组查询怎么做
时间 : 2023-03-08 15:25:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

MySQL分组查询是一种功能强大的查询方式,可以将数据按照某个字段进行分类并计算统计数据。下面我将详细介绍MySQL分组查询的语法及应用。

语法

MySQL分组查询的语法如下:

SELECT column1, column2, aggregate_function(column3)

FROM table_name

WHERE condition

GROUP BY column1, column2

其中,column1和column2代表需要查询的字段,aggregate_function是聚合函数,column3是被聚合的字段,table_name是查询的表名,condition是查询的条件,GROUP BY是分组关键字。

分组查询的聚合函数常用的有以下几种:

- COUNT:统计数量

- SUM:求和

- AVG:求平均值

- MAX:求最大值

- MIN:求最小值

应用

下面以一个具体的例子来演示MySQL分组查询的应用。

例如,我们有一张学生成绩表(score_table),包含学生姓名(name)、科目名称(subject_name)和成绩(score)三个字段,我们想要统计每个学生每门科目的平均成绩。

首先,我们需要使用以下SQL语句创建一个score_table表:

CREATE TABLE score_table (

id INT PRIMARY KEY AUTO_INCREMENT,

name VARCHAR(50),

subject_name VARCHAR(50),

score INT

);

接下来,我们需要向score_table表中插入一些数据,例如:

INSERT INTO score_table (name, subject_name, score) VALUES

('张三', '语文', 85),

('张三', '数学', 90),

('李四', '语文', 80),

('李四', '数学', 75),

('王五', '语文', 70),

('王五', '数学', 95),

('赵六', '语文', 95),

('赵六', '数学', 85);

然后,我们可以使用以下SQL语句进行分组查询:

SELECT name, subject_name, AVG(score) AS avg_score

FROM score_table

GROUP BY name, subject_name;

执行以上SQL语句后,我们可以得到以下结果:

+--------+--------------+-----------+

| name | subject_name | avg_score |

+--------+--------------+-----------+

| 张三 | 数学 | 90.0000 |

| 张三 | 语文 | 85.0000 |

| 李四 | 数学 | 75.0000 |

| 李四 | 语文 | 80.0000 |

| 王五 | 数学 | 95.0000 |

| 王五 | 语文 | 70.0000 |

| 赵六 | 数学 | 85.0000 |

| 赵六 | 语文 | 95.0000 |

+--------+--------------+-----------+

我们可以看到,每个学生每门科目的平均成绩都被成功地统计出来了。

综上所述,MySQL分组查询是一种非常有用的查询方式,可以帮助我们便捷地进行数据统计和分析。