我在 PostgreSQL 中有一張表:
| 日期 | 價值 |
|---|---|
| '2020-06-02' | 150 |
| '2020-06-03' | 7891 |
| '2020-07-02' | 392 |
| ... | ... |
我需要為value表格中的每個日期獲取列中的總數字。value必須在行中日期的月份第一個日期和行中日期之間的日期范圍內計算運行總計的總和。
例子:
- 對于
'2020-06-02'第一行中的日期,必須在與當前日期 ( )value之間的范圍內計算列的總和,包括當前日期的數字。'2020-06-01''2020-06-02' - 對于第二行中的日期,必須在與當前日期 ( )
value之間的日期范圍內計算列中數字的總和,包括 的數字。'2020-06-01''2020-06-03''2020-06-03' - 對于第三行,必須在和
value之間的日期范圍內計算列中數字的總和。'2020-07-01''2020-07-02' - 等等...
如何做到這一點?有視窗功能?
uj5u.com熱心網友回復:
實際上:
SELECT date
, sum(value) OVER (PARTITION BY date_trunc('month', date) ORDER BY date)
FROM tbl;
請注意,對等行(根據您的磁區和排序順序)得到相同的結果。意思是,重復的每一天都會得到相同的運行總和,包括它們的所有值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/464771.html
標籤:sql PostgreSQL 窗函数 累积和
上一篇:如何根據最小日期間隔合并間隔?
下一篇:如何查找具有最新訊息的群組?
