可变列数的mysql查询

时间:2018-12-13 15:07:57

标签: mysql

我有一个像这样的表结构:

id:Bigint(11)
channel_id:Bigint(11)
server_id:Bigint(11)
created:timestamp

,我想获取一个表,该表显示每个channel_id在给定时间段(每个小时,因此从00:00-00:59和01:00-01:59等)中的条目数其中server_id为X(如果可能,还包括所有channel_id的总数)。而且我还需要它显示没有条目的时间段以及该时间段内没有消息的channel_id(所有channel_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)

我找不到有关可变列数的任何信息(因为我不知道给定server_id有多少个不同的channel_id)

谢谢您的帮助。

编辑:删除了问题的时间部分,但是我的主要问题仍然存在。即使我以前都不知道如何将channel_ids作为列。

0 个答案:

没有答案