PostgreSQL平均查询

时间:2017-05-08 16:38:07

标签: postgresql

我试图弄清楚如何编写一个查询,它会给我3个不同列的平均值,以便我可以在图表中填充它们。我所拥有的是一个程序,它使用超声波传感器的当前水位每5分钟向一张桌子添加一条记录。因此对于我正在研究的当前传感器,有1000条记录。我想要做的是在图表中显示10个平均值,因此每个平均值将是100个平均值的记录。图表所需的3个平均列是深度,日期和时间。该表名为data_tank。任何有关这方面的帮助将不胜感激。

Example of table 让我们忘记3列,我现在需要的只是获得tank_level的平均值。所以在图片中有20行,我想要显示的最大数据点是10,所以每2行需要一起平均。

1 个答案:

答案 0 :(得分:0)

with t (id, tank_level, job_id) as (values (1,1,26),(2,2,26),(3,3,26),(4,4,26))
select avg(tank_level)
from (
    select row_number() over (order by id) as rn, tank_level
    from t
    where job_id = 26
) s
group by (rn + 1)/ 2
;
        avg         
--------------------
 1.5000000000000000
 3.5000000000000000