gpt4 book ai didi

mysql - 在一个时间范围内分组为 5 分钟的间隔

转载 作者:IT老高 更新时间:2023-10-28 12:52:32 26 4
gpt4 key购买 nike

我对想要执行的 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

最佳答案

这适用于每个间隔。

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

关于mysql - 在一个时间范围内分组为 5 分钟的间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4342370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com