gpt4 book ai didi

sql - 采样 SQL 时间序列

转载 作者:行者123 更新时间:2023-12-01 09:06:07 30 4
gpt4 key购买 nike

我有一个日期时间的时间序列,双列存储在 mySQL 中,并且希望每分钟对时间序列进行采样(即以一分钟为间隔提取最后一个值)。在一个 select 语句中是否有一种有效的方法来做到这一点?

蛮力方式将涉及选择整个系列并在客户端进行采样或为每个点发送一个选择(例如 select * from data where timestamp<xxxxxxxxx order by timestamp desc limit 1 )。

最佳答案

您可以将时间戳转换为 UNIX 时间戳,按 unix_timestamp DIV 60 分组并从每个组中提取最大时间戳。然后将获得的列表加入到原始表中以提取获得的时间戳的数据。

基本上它可能看起来像这样:

SELECT
t.* /* you might want to be more specific here */
FROM atable t
INNER JOIN (
SELECT
MAX(timestamp) AS timestamp
FROM atable
GROUP BY UNIX_TIMESTAMP(timestamp) DIV 60
) m ON t.timestamp = m.timestamp

关于sql - 采样 SQL 时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7335627/

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