我想要一個累積總和,但我的情況需要按多列分組
桌子:customer
型別 | 星期 | ID |
---|---|---|
一個 | 2022-01 | abc123 |
乙 | 2022-01 | bcd123 |
乙 | 2022-02 | EFG123 |
一個 | 2022-02 | klc123 |
乙 | 2022-02 | 瘋狂123 |
我現在的查詢:
SELECT week, type, SUM(cnt) OVER (ORDER BY week)
FROM (SELECT week, type, COUNT(*) AS cnt
FROM customer
GROUP BY week, type) t
ORDER BY 1 ASC
結果:
星期 | 型別 | 和 |
---|---|---|
2022-01 | 一個 | 1 |
2022-01 | 乙 | 1 |
2022-02 | 一個 | 1 |
2022-02 | 乙 | 1 |
問題就在這里,結果的最后一行應該是 Sum=2,但由于某種原因(idk 為什么)它遵循上述。
是否有其他方法來解決和計算累積?
謝謝
uj5u.com熱心網友回復:
SELECT week, type,
SUM(cnt) OVER (PARTITION BY week, type
ORDER BY week
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
)
FROM (SELECT week, type, COUNT(*) AS cnt
FROM customer
GROUP BY week, type) t
ORDER BY 1 ASC
句子“無界前行和當前行之間的行”您可以使用或不使用,因為它是默認行為。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/530963.html
標籤:PostgreSQL