栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

选择按5分钟周期分组的平均记录

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

选择按5分钟周期分组的平均记录

SELECt grid.t5      ,min(t."time") AS min_time--    ,array_agg(extract(min FROM t."time")) AS 'players_on' -- optional      ,avg(t.players) AS avg_players      ,avg(t.servers) AS avg_serversFROM (   SELECt generate_series(min("time")   ,max("time"), interval '5 min') AS t5   FROM tbl   ) gridLEFT JOIN tbl t ON t."time" >= grid.t5    AND t."time" <  grid.t5 +  interval '5 min'GROUP  BY grid.t5ORDER  BY grid.t5;

解释

  • 子查询

    grid
    每5分钟从表中的最小值“到最大值”产生一行记录
    time"

  • 以5分钟为间隔将LEFT JOIN返回表切片数据。仔细 包括 下边框,并 排除 上边框。

  • 要在没有任何反应的情况下放5分钟的时隙,请使用

    JOIN
    代替
    LEFT JOIN

  • 要使网格时间从0:00、5:00等开始,请向下舍

    min("time")
    generate_series()

这些相关答案中的更多解释:
按数据间隔分组
PostgreSQL:“按分钟”运行查询的行数

另外:我不会使用它

time
作为标识符。它是标准SQL中的保留字,而在Postgres中是函数/类型名。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/670319.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号