Mysql SQL:按计数顺序计算时间范围内列值的出现次数

Mysql SQL:按计数顺序计算时间范围内列值的出现次数,mysql,sql,Mysql,Sql,所以我有一大堆关于房间的信息。我想做的是按邮件数查找前5个房间。因此,如果在过去5天中1000条消息来自A房间,500条消息来自B房间,依此类推,我将以表格A、B、C、D、E的形式返回结果 我找到了过去5天里所有的房间 SELECT room FROM messages WHERE timestamp < (SELECT UNIX_TIMESTAMP()*1000) AND timestamp > (SELECT UNIX_TIMESTAMP(DAT

所以我有一大堆关于房间的信息。我想做的是按邮件数查找前5个房间。因此,如果在过去5天中1000条消息来自A房间,500条消息来自B房间,依此类推,我将以表格A、B、C、D、E的形式返回结果

我找到了过去5天里所有的房间

SELECT room 
FROM messages 
WHERE 
    timestamp < (SELECT UNIX_TIMESTAMP()*1000) 
    AND 
    timestamp > (SELECT UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 5 day))*1000);
但是,当我试图简单地按countroom添加顺序时;最后,整个列表将被展平为一个不相关的结果,即最近的消息


我遗漏了什么?

如评论人:按房间列分组,然后按顺序:

SELECT room,count(*)
FROM messages 
WHERE 
    timestamp < (SELECT UNIX_TIMESTAMP()*1000) 
    AND 
    timestamp > (SELECT UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 5 day))*1000)
group by room
order by 2 desc
limit 5;
您需要使用group by room来计算单个房间的数量