我试图找到一个 MySQL 查询,它将在特定字段中找到 DISTINCT 值,计算该值的出现次数,然后按计数对结果进行排序。
示例数据库
id name
----- ------
1 Mark
2 Mike
3 Paul
4 Mike
5 Mike
6 John
7 Mark
预期结果
name count
----- -----
Mike 3
Mark 2
Paul 1
John 1
2 Answers
像这样的东西怎么样:
SELECT
name,
count(*) AS num
FROM
your_table
GROUP BY
name
ORDER BY
count(*)
DESC
您正在选择名称及其出现的次数,但按名称分组,因此每个名称仅选择一次。
最后,您按 DESCending 顺序按次数排序,以使出现频率最高的用户排在第一位。
你的查询帮助了我。它返回几行作为结果。我也想知道如何找到这个结果的计数。尝试了一些查询,但似乎无法对聚合进行计数。你能帮忙吗?
@Nav – 数什么?返回的行数?那是SELECT COUNT(DISTINCT name) as count FROM your_table
要计算表的总行数,请执行不带group by
陈述。
@AutumnLeonardthanx 人。我从您的评论中得到了答案,然后是答案.. 🙂