MySQL 统计 DISTINCT 值的出现次数
在 MySQL 中,我们经常需要统计某一列的不同取值出现的次数。这就需要用到 COUNT
和 DISTINCT
函数。
阅读更多: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
去除重复值,可以很方便地统计一列不同取值出现的次数。通过以上示例,你应该已经了解了如何使用这两个函数。