› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
zhangshaohan
V2EX  ›  MySQL

mysql 如何按时间维度每 5s 统计一次数据呢?

  •  
  •   zhangshaohan · Sep 22, 2021 · 3292 views
    This topic created in 1868 days ago, the information mentioned may be changed or developed.

    有个表有创建时间字段,按照这个字段,每隔 5 秒统计一次这期间的数据增量,如果没有新增,则为 0,这种 SQL 怎么写呢?

    13 replies  •  2021-09-23 09:12:59 +08:00
    myd
    myd
    Sep 22, 2021
    1
    select count(*) from xxx group by floor(时间戳 /5)
    zhangshaohan
    zhangshaohan
    OP
    Sep 22, 2021
    2
    @myd

    2021-09-22 13:45:29 1
    2021-09-22 13:45:30 2
    2021-09-22 13:46:00 4
    2021-09-22 13:46:07 1
    2021-09-22 13:46:30 2

    不是每秒钟都有数据,有没有办法能整齐的每五秒分割一次来进行统计呢?
    myd
    myd
    Sep 22, 2021
    3
    @Geekerstar 在程序中补齐,不一定要在数据库中实现。
    deltadawn
    deltadawn
    Sep 22, 2021
    4
    INTERVAL()
    Pipecraft
    Pipecraft
    Sep 22, 2021❤️2
    5
    试了一下,使用 `DATE_ADD(created_at, INTERVAL - SECOND(created_at) % 5 SECOND)` 可以按照每分钟的 0,5,10.. 秒为单位统计。没有数据的时间段需要在程序补齐。

    由于无法贴出代码,我把完整的 SQL 贴在了这里 pzwd.net/d/31/2 。
    wellsc
    wellsc
    Sep 22, 2021
    6
    用 Prometheus 吧
    adgad2
    adgad2
    Sep 22, 2021
    7
    遇到个类似需求,最后建表写个定时任务完事
    haochen2
    haochen2
    Sep 22, 2021
    8
    这种统计的还是多余建个表来存储吧
    zhangshaohan
    zhangshaohan
    OP
    Sep 22, 2021
    9
    @Pipecraft 感谢大佬
    zhangshaohan
    zhangshaohan
    OP
    Sep 22, 2021
    10
    @myd 嗯嗯,在程序中处理了
    zhangshaohan
    zhangshaohan
    OP
    Sep 22, 2021❤️1
    11
    @Pipecraft 大佬的网站很棒,收藏了
    beginor
    beginor
    Sep 22, 2021 via Android
    12
    不知道 mysql 有没有类似 PostgreSQL 生成序列的概念,有的话就很容易统计了
    Saxton
    Saxton
    Sep 23, 2021
    13
    我做过这个需求,先 count 查出来,然后用程序补充时间就可以了 mysql 只负责查 不负责逻辑的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1400 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 20:50 · PVG 04:50 · LAX 12:50 · JFK 15:50
    ♥ Do have faith in what you're doing.