📜  mysql count unique in group 语句 - SQL (1)

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

MySQL中的分组统计和去重

在MySQL中,我们经常需要对数据进行分组统计并去重。这时可以使用GROUP BYDISTINCT这两个关键词来实现。下面我们将介绍如何在MySQL中使用这两个关键词来统计分组中的唯一值。

GROUP BY语句

GROUP BY语句可以将数据按照指定的列进行分组,将每组内的数据进行聚合计算。

语法格式如下:

SELECT column1,column2,...columnN, aggregate_function(column)
FROM table
WHERE [condition]
GROUP BY column1,column2,...columnN;

其中 aggregate_function 可以是 MySQL 内置的聚合函数,如 COUNTSUMAVG 等等。

例如,我们有一个学生信息表students,包含ID、姓名、年龄、性别和学院五个字段。我们可以使用如下语句对学生按照学院进行分组,并统计每个学院的人数:

SELECT college, COUNT(*) AS count
FROM students
GROUP BY college;

上述语句会输出每个学院的人数。

DISTINCT语句

SELECT DISTINCT语句可以用于去除结果中重复的行。

语法格式如下:

SELECT DISTINCT column1, column2, ..., columnN
FROM table
WHERE [condition];

例如,我们有一个成绩表scores,包含ID、学生姓名、课程名称和分数四个字段。我们可以使用如下语句查询每个学生所选课程的不同名称:

SELECT DISTINCT studentName, courseName
FROM scores;

上述语句会输出每个学生所选课程的不同名称。

GROUP BY和DISTINCT的结合应用

如果我们需要统计分组内不同列的唯一值个数,可以将DISTINCTGROUP BY结合使用。

例如,我们需要查询每个学院的不同年龄段的人数,可以使用如下语句:

SELECT college, age, COUNT(DISTINCT ID) AS count
FROM students
GROUP BY college, age;

上述语句会输出每个学院内不同年龄段的人数。

总结

在MySQL中,GROUP BYDISTINCT是非常常用的关键词,可以实现对数据的分组统计和去重等功能。对于程序员来说,掌握这两个关键词的使用方法十分重要,能够更好地完成数据分析和处理任务。