4

ID、日付、値 (温度) などを含むテーブルがあります。私のテーブルは次のようになります。

+-----+--------------+------------+
| ID  |  temperature |    Date    |
+-----+--------------+------------+
|  1  |  26.3        | 2012-02-05 |
|  2  |  27.8        | 2012-02-06 |
|  3  |  24.6        | 2012-02-07 |
|  4  |  29.6        | 2012-02-08 |
+-----+--------------+------------+

合計や平均などの集計クエリを 10 日ごとに実行したいと考えています。

psqlで可能かどうか疑問に思っていましたか?

4

2 に答える 2

9

SQL フィドル

select
    "date",
    temperature,
    avg(temperature) over(order by "date" rows 10 preceding) mean
from t
order by "date"
于 2012-10-25T22:17:29.790 に答える
3
select id, 
       temperature, 
       sum(temperature) over (order by "date" rows between 10 preceding and current row)
from the_table;

過去 10 日間と必ずしも同じではない、最後の 10 行の移動合計を行うため、正確にはあなたが望むものではないかもしれません。


Postgres 11 以降、間隔に基づく範囲を使用できるようになりました

select id, 
       temperature, 
       avg(temperature) over (order by "date" 
                                range between interval '10 days' preceding and current row)
from the_table;
于 2012-10-25T22:07:38.253 に答える