📅  最后修改于: 2023-12-03 15:17:45.669000             🧑  作者: Mango
在MySQL中,我们经常需要对数据进行分组统计并去重。这时可以使用GROUP BY
和DISTINCT
这两个关键词来实现。下面我们将介绍如何在MySQL中使用这两个关键词来统计分组中的唯一值。
GROUP BY
语句可以将数据按照指定的列进行分组,将每组内的数据进行聚合计算。
语法格式如下:
SELECT column1,column2,...columnN, aggregate_function(column)
FROM table
WHERE [condition]
GROUP BY column1,column2,...columnN;
其中 aggregate_function
可以是 MySQL 内置的聚合函数,如 COUNT
、SUM
、AVG
等等。
例如,我们有一个学生信息表students
,包含ID、姓名、年龄、性别和学院五个字段。我们可以使用如下语句对学生按照学院进行分组,并统计每个学院的人数:
SELECT college, COUNT(*) AS count
FROM students
GROUP BY college;
上述语句会输出每个学院的人数。
SELECT DISTINCT
语句可以用于去除结果中重复的行。
语法格式如下:
SELECT DISTINCT column1, column2, ..., columnN
FROM table
WHERE [condition];
例如,我们有一个成绩表scores
,包含ID、学生姓名、课程名称和分数四个字段。我们可以使用如下语句查询每个学生所选课程的不同名称:
SELECT DISTINCT studentName, courseName
FROM scores;
上述语句会输出每个学生所选课程的不同名称。
如果我们需要统计分组内不同列的唯一值个数,可以将DISTINCT
和GROUP BY
结合使用。
例如,我们需要查询每个学院的不同年龄段的人数,可以使用如下语句:
SELECT college, age, COUNT(DISTINCT ID) AS count
FROM students
GROUP BY college, age;
上述语句会输出每个学院内不同年龄段的人数。
在MySQL中,GROUP BY
和DISTINCT
是非常常用的关键词,可以实现对数据的分组统计和去重等功能。对于程序员来说,掌握这两个关键词的使用方法十分重要,能够更好地完成数据分析和处理任务。