gpt4 book ai didi

mysql - 解释 "How to group time column into 5 minute intervals"的 MySQL 查询

转载 作者:行者123 更新时间:2023-11-29 02:09:47 26 4
gpt4 key购买 nike

我找到了解决问题的各种方法,如下所示:

How to group time column into 5 minute intervals and max/min value respectively SQL?

https://dba.stackexchange.com/questions/195353/grouping-data-into-5-minute-intervals-within-a-time-range

Grouping into interval of 5 minutes within a time range

解决任务的代码如下:

SELECT
FROM_UNIXTIME((UNIX_TIMESTAMP(table.timestamp) DIV 300) * 300) AS Timestamp,
val AS AgregatedValue
From foo
GROUP BY Timestamp
ORDER BY Timestamp

有人可以解释为什么所提供的解决方案有效吗?我找不到一个很好地描述它实际工作原理的答案。为什么首先要除以 300 秒,最后乘以 300 秒?“后台”发生了什么?

我阅读了关于 UNIX_TIMESTAMP(timestamp) 的文档,它以无符号整数的形式返回参数的值,以秒为单位,自“1970-01-01 00:00:00”UTC 以来。我知道 FROM_UNIXTIME() 恰好是 UNIX_TIMESTAMP(timestamp)

的反向函数

也许这个问题很愚蠢,但我被卡住了。

最佳答案

答案在 token DIV 中。

DIV 不仅是除法 (/),而且还隐式转换为整数。

你这样做是为了得到一个没有余数的整数。基本上,这与在划分后使用显式转换,或在划分后使用 ROUND()FLOOR() 相同。

引用:

https://dev.mysql.com/doc/refman/8.0/en/arithmetic-functions.html

Integer division. Discards from the division result any fractional part to the right of the decimal point.

关于mysql - 解释 "How to group time column into 5 minute intervals"的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55731064/

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