例如,在我创建的名为“likes”的表中,有三个字段:id(不相关),用户id(用户的id)和post id(帖子的id)。说我有很多记录,我想找出数据库中哪个帖子ID最多次。要明确的是,我不是要问哪个记录在post id字段中的编号最大。相反,我正在寻找最多列出哪个帖子ID。例如,假设一个帖子id(222)在数据库中7次,而每个其他帖子id每次使用1次。在这种情况下,我需要找到222的帖子ID。如果可能的话,我怎样才能找到记录中使用量最高的前5个帖子ID?
答案 0 :(得分:1)
这是一个相当简单的聚合函数count()
,它将计算匹配记录的数量。
select
postID,
count(*) as numLikes
from
yourTable
group by
postID
order by
numLikes desc
这将按照他们喜欢的次数列出帖子。
此外,由于我主要为您提供一个解决方案,您可以很好地使用read this Q&A that I wrote,这将更详细地解释这一切是如何工作的 - 实际上我做了很多工作来掩盖聚合函数像这样。我在这个问题的第一个答案的中途解释了这种查询到底发生了什么:)