例如,在我创建的名为“likes”的表中,有三个字段:id(不相关)、user id(用户的 id)和 post id(帖子的 id)。假设我有很多记录,我想找出哪个帖子 ID 在数据库中的次数最多。需要明确的是,我不是在询问帖子 id 字段中哪个记录的数字最大。相反,我正在寻找列出次数最多的帖子 ID。例如,假设一个帖子 id (222) 在数据库中出现了 7 次,而其他每个帖子 id 都被使用了 1 次。在这种情况下,我需要找到 222 的帖子 ID。如果可能的话,我怎样才能找到记录中使用次数最多的前 5 个帖子 ID?
问问题
74 次
1 回答
1
这是一个相当简单的聚合函数count()
,可以计算匹配记录的数量。
select
postID,
count(*) as numLikes
from
yourTable
group by
postID
order by
numLikes desc
这将按照帖子被喜欢的次数列出帖子。
此外,由于我主要为您提供解决方案,因此您会很好地阅读我写的这个问答,它将更详细地解释这一切是如何工作的——事实上,我做了很多工作来掩盖像这样的聚合函数在里面。我在问题的第一个答案的一半左右准确地解释了这种查询中发生了什么:)
于 2013-09-17T23:37:34.877 回答