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

平均间隔内的多个平均值

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

平均间隔内的多个平均值

我建议使用方便的功能

width_bucket()

要获取每个时间段(“ bin”)的平均值:

SELECt width_bucket(extract(epoch FROM t.the_date)       , x.min_epoch, x.max_epoch, x.bins) AS bin     , avg(value) AS bin_avgFROM   tbl t    , (SELECt extract(epoch FROM min(the_date)) AS min_epoch , extract(epoch FROM max(the_date)) AS max_epoch , 10 AS bins       FROM   tbl t      ) xGROUP  BY 1;

要获得(逐步)增长时间间隔内的“运行平均值”:

SELECt bin, round(sum(bin_sum) OVER w /sum(bin_ct) OVER w, 2) AS running_avgFROM  (   SELECt width_bucket(extract(epoch FROM t.the_date)          , x.min_epoch, x.max_epoch, x.bins) AS bin        , sum(value) AS bin_sum        , count(*)   AS bin_ct   FROM   tbl t       , (SELECt extract(epoch FROM min(the_date)) AS min_epoch    , extract(epoch FROM max(the_date)) AS max_epoch    , 10 AS bins          FROM   tbl t         ) x   GROUP  BY 1   ) subWINDOW w AS (ORDER BY bin)ORDER  BY 1;

使用

the_date
而不是
date
作为列名,避免使用保留字作为标识符。
由于
width_bucket()
目前仅针对
doubleprecision
和实现
numeric
,因此我从中提取历元值
the_date
。此处的详细信息:
在PostgreSQL中聚集(x,y)坐标点云



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

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

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