开发者社区 问答 正文

在一个时间范围内分为5分钟间隔

我在使用mySQL命令时遇到一些困难。

SELECT a.timestamp, name, count(b.name) FROM time a, id b WHERE a.user = b.user AND a.id = b.id AND b.name = 'John' AND a.timestamp BETWEEN '2010-11-16 10:30:00' AND '2010-11-16 11:00:00' GROUP BY a.timestamp 这是我当前的输出语句。

timestamp name count(b.name)


2010-11-16 10:32:22 John 2 2010-11-16 10:35:12 John 7 2010-11-16 10:36:34 John 1 2010-11-16 10:37:45 John 2 2010-11-16 10:48:26 John 8 2010-11-16 10:55:00 John 9 2010-11-16 10:58:08 John 2 如何将它们分为5分钟间隔结果?

我希望我的输出像

timestamp name count(b.name)


2010-11-16 10:30:00 John 2 2010-11-16 10:35:00 John 10 2010-11-16 10:40:00 John 0 2010-11-16 10:45:00 John 8 2010-11-16 10:50:00 John 0 2010-11-16 10:55:00 John 11

展开
收起
保持可爱mmm 2020-05-10 22:30:45 361 分享 版权
1 条回答
写回答
取消 提交回答
  • 这适用于每个间隔。

    PostgreSQL的

    SELECT TIMESTAMP WITH TIME ZONE 'epoch' + INTERVAL '1 second' * round(extract('epoch' from timestamp) / 300) * 300 as timestamp, name, count(b.name) FROM time a, id WHERE … GROUP BY round(extract('epoch' from timestamp) / 300), name

    的MySQL

    SELECT timestamp, -- not sure about that name, count(b.name) FROM time a, id WHERE … GROUP BY UNIX_TIMESTAMP(timestamp) DIV 300, name来源:stack overflow

    2020-05-10 22:30:56
    赞同 展开评论