首页 > 数据库 > mysql教程 > 如何在 MySQL 中按 10 秒、30 秒或其他间隔对时间序列数据进行分组?

如何在 MySQL 中按 10 秒、30 秒或其他间隔对时间序列数据进行分组?

Barbara Streisand
发布: 2025-01-03 20:34:41
原创
245 人浏览过

How Can I Group Time-Series Data in MySQL by 10-Second, 30-Second, or Other Intervals?

SELECT / GROUP BY - 时间段(10 秒、30 秒等)

在 MySQL 中,可以检索聚合使用 SELECT 和 GROUP BY 子句基于时间间隔从表中获取数据。考虑这样一个场景,您有一个表每 n 秒记录一次样本,其中有两个相关列:time_stamp 和 count。

要获取按特定时间间隔分组的 count 列的总和或平均值,请执行以下步骤:

  1. 使用 UNIX_TIMESTAMP 函数将 time_stamp 列转换为 UNIX 时间戳。
  2. 除以按所需间隔的时间戳。例如,要按 10 秒间隔进行分组: UNIX_TIMESTAMP(time_stamp) DIV 10.
  3. 使用步骤 2 的结果作为 GROUP BY 子句中的分组条件,如以下查询所示:

    SELECT UNIX_TIMESTAMP(time_stamp) DIV 10, SUM(count)
    FROM table
    GROUP BY UNIX_TIMESTAMP(time_stamp) DIV 10;
    登录后复制

此查询将数据分组为10 秒间隔,对每个间隔内的计数值求和。

  1. 如果需要,可以通过向时间戳添加偏移量来调整间隔之间的边界。例如,要按 hh:mm:05 到 hh:mm:35 的间隔进行分组,请使用:

    GROUP BY (UNIX_TIMESTAMP(time_stamp) + 5) DIV 10
    登录后复制

通过利用 GROUP BY 和 UNIX_TIMESTAMP 函数,您可以有效聚合来自基于不同时间段的时间序列表的数据,提供对随时间变化的模式和趋势的洞察。

以上是如何在 MySQL 中按 10 秒、30 秒或其他间隔对时间序列数据进行分组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板