MySQL 检索每个唯一值及其数量

MySQL 检索每个唯一值及其数量

介绍

MySQL 是一个大型关系型数据库管理系统,被广泛应用于各种 Web 应用程序和网站的后端开发。在 MySQL 中,我们经常需要检索表中的唯一值以及每个唯一值出现的次数。本文将介绍如何在 MySQL 中检索每个唯一值及其数量的方法。

阅读更多:MySQL 教程

准备

在实践本文中的示例之前,你需要安装和配置一个 MySQL 数据库,并且需要有一张包含一些重复值的测试表。下面是一个名为 “students” 的测试表:

id name age
1 Eric 22
2 Emily 21
3 Eric 18
4 Jessica 20
5 Jessica 23
6 Emily 19

使用 GROUP BY 和 COUNT 函数检索每个唯一值和其数量

在 MySQL 中,使用 GROUP BY 和 COUNT 函数可以非常方便地检索每个唯一值及其数量。例如,下面的查询将检索学生姓名和每个姓名出现的次数:

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

查询结果如下所示:

name count
Eric 2
Emily 2
Jessica 2

使用 COUNT(*) 函数可以统计每个唯一值出现的次数,而 GROUP BY 子句则可以根据特定的列对其进行分组。上述查询结果显示了每个学生姓名出现的次数。

使用 DISTINCT 和 COUNT 函数检索每个唯一值和其数量

另一种检索每个唯一值和其数量的方法是使用 DISTINCT 和 COUNT 函数。例如,下面的查询将检索学生年龄和每个年龄出现的次数:

SELECT DISTINCT age, COUNT(*) AS count FROM students GROUP BY age;
SQL

查询结果如下所示:

age count
18 1
19 1
20 1
21 1
22 1
23 1

使用 DISTINCT 子句可以将结果中重复的值去除,然后使用 COUNT(*) 函数统计每个唯一值出现的次数。上述查询结果显示了每个学生年龄出现的次数。

使用子查询检索每个唯一值和其数量

除了使用 GROUP BY 和 COUNT 函数以及 DISTINCT 和 COUNT 函数之外,我们还可以使用子查询来检索每个唯一值及其数量。例如,下面的查询将检索每个学生姓名及其出现的次数:

SELECT name, (
    SELECT COUNT(*) FROM students s WHERE s.name = students.name
) AS count FROM students GROUP BY name;
SQL

查询结果如下所示:

name count
Eric 2
Emily 2
Jessica 2

使用子查询时,我们可以在子查询中使用 WHERE 子句对特定列进行限制。上述查询结果与使用 GROUP BY 和 COUNT 函数的查询结果相同。

总结

MySQL 中检索每个唯一值及其数量的方法包括使用 GROUP BY 和 COUNT 函数、DISTINCT 和 COUNT 函数以及子查询。具体选择使用哪种方法取决于你的个人喜好和查询的复杂程度。我们建议根据实际情况选择最适合的方法,以提高查询效率和准确性。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册