gpt4 book ai didi

MySQL 5.7 按特定的 30 分钟间隔分组

转载 作者:可可西里 更新时间:2023-11-01 08:08:47 26 4
gpt4 key购买 nike

我有一个 MySQL 5.7 表,每行都有时间戳。我的目标是计算 some_id 列的值,并按照指定的 30 分钟间隔对它们进行分组。并仅显示计数大于 0 的那些间隔。输入:

timestamp                 some_id
-------------- ------
2019-01-19 05:30:12 4
2019-01-19 05:40:12 8
2019-01-19 15:37:40 2
2019-01-20 01:57:38 2
2019-01-20 07:10:07 4
2019-01-20 22:10:38 2
2019-01-21 08:35:55 4

预期:

interval             COUNT(some_id)
------------- -----------
05:30:00 - 06:00:00 2
07:00:00 - 07:30:00 1
08:30:00 - 09:00:00 1
22:00:00 - 22:30:00 1
etc..........

我已尝试实现此处提供的解决方案 MySQL Group by specific 24 hour interval - 但没有成功。

我的尝试

我不确定这是正确的解决方案

SELECT CONCAT(
DATE_FORMAT(table.timestamp, "%H:"),
IF("30">MINUTE(table.timestamp),
(CONCAT("00-",DATE_FORMAT(DATE_ADD(table.timestamp, INTERVAL 60 MINUTE), "%H:"),"30")),
(CONCAT("30-",DATE_FORMAT(DATE_ADD(table.timestamp, INTERVAL 30 MINUTE), "%H:"),"00")))) AS time_period,
COUNT(*)
FROM table
GROUP BY time_period;

最佳答案

您提供的链接有一个非常深奥的解决方案。尝试:

SELECT CONCAT(
DATE_FORMAT(mydate, "%Y-%m-%d %H:"),
IF("30">MINUTE(mydate), "00", "30")
) AS time_bin,
COUNT(*)
FROM mytable
GROUP BY CONCAT(
DATE_FORMAT(mydate, "%Y-%m-%d %H:"),
IF("30">MINUTE(mydate), "00", "30")
)

关于MySQL 5.7 按特定的 30 分钟间隔分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54711935/

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