MySQL 统计 DISTINCT 值的出现次数

MySQL 统计 DISTINCT 值的出现次数

MySQL 中,我们经常需要统计某一列的不同取值出现的次数。这就需要用到 COUNTDISTINCT 函数。

阅读更多:MySQL 教程

语法

以下是 COUNT 函数的语法:

COUNT(DISTINCT expression)
  • expression:要进行操作的列或表达式。

DISTINCT 用于去除重复值,使得同一值只会被计数一次。

示例

假设我们有以下一个表 users

id name age
1 Alice 25
2 Bob 35
3 Alice 40
4 Charlie 25
5 Bob 35
6 Alice 25

统计所有取值的出现次数

如果要统计所有 name 在表中出现的次数,可以使用以下 SQL 语句:

SELECT name, COUNT(*) as count FROM users GROUP BY name ORDER BY count DESC;

输出结果为:

name count
Alice 3
Bob 2
Charlie 1

统计不同取值的出现次数

如果只是要统计不同 name 的出现次数,可以使用以下 SQL 语句:

SELECT COUNT(DISTINCT name) as count FROM users;

输出结果为:

count
3

统计不同取值的平均出现次数

如果想统计每个 name 出现的平均次数,可以使用以下 SQL 语句:

SELECT name, COUNT(*) / COUNT(DISTINCT name) as count FROM users GROUP BY name ORDER BY count DESC;

输出结果为:

name count
Alice 1.5
Bob 1.0
Charlie 1.0

总结

MySQL 中,使用 COUNT 函数和 DISTINCT 去除重复值,可以很方便地统计一列不同取值出现的次数。通过以上示例,你应该已经了解了如何使用这两个函数。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程