我有一個如下所示的資料表:
| 店鋪 | 地區 | 浪費% | 平均區域浪費 | 電梯 |
|---|---|---|---|---|
| 一種 | 加州 | 10 | 15 (30/2) | 10/15 |
| b | 加州 | 20 | 15 (30/2) | 20/15 |
| C | 洛杉磯 | 32 | 37 (74/2) | 32/37 |
| d | 洛杉磯 | 42 | 37 (74/2) | 42/37 |
我正在努力計算最后兩列AvgRegionWaste和Lift。
我嘗試了以下方法(如此處所述):
SELECT avg(waste over (partition by Region order by Shop rows between unbounded preceding and current row) AS rolling_avg
FROM my_table
GROUP BY Shop, Region
但這似乎沒有奏效。我錯過了什么?
uj5u.com熱心網友回復:
該列所需的運算式AvgRegionWaste是:
AVG(waste) OVER (PARTITION BY Region)
查詢應該是:
SELECT *,
ROUND(AVG(waste) OVER (PARTITION BY Region), 2) AvgRegionWaste,
ROUND(Waste / AVG(waste) OVER (PARTITION BY Region), 2) Lift
FROM my_table;
您可以根據需要調整回傳值的舍入。
請參閱演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/465043.html
標籤:PostgreSQL 平均的 窗函数
