我的表结构如下所示:
id:Bigint(11)
channel_id:Bigint(11)
server_id:Bigint(11)
created:timestamp
我想得到一个表,显示给定时间段内(每小时,从00:00-00:59和01:00-01:59等等)每个通道的条目数,其中服务器id是x(如果可能,还包括所有通道id的总数)。我还需要它显示没有条目的时间段以及没有该时间段消息的通道标识(所有通道标识至少在数据集中出现一次)
我能想到的最好的办法就是
SELECT
DATE_FORMAT(
MIN(created),
'%d/%m/%Y %H:00:00'
) AS tmstamp,
COUNT(*) AS cnt
FROM
messages
GROUP BY ROUND(UNIX_TIMESTAMP(created) / 3600)
我找不到任何关于可变列数的信息(因为我不知道给定服务器id有多少个不同的通道id)
谢谢你的帮助。
编辑:删除了问题的时间段部分,但我的主要问题仍然存在。即使我以前不知道频道ID,如何将它们作为列来获取。
暂无答案!
目前还没有任何答案,快来回答吧!