1
我有數據,看起來像這樣:Postgres的:unnesting數組和計數總計
winning_pid losing_pid pair wins
1 2 1,2 7
2 1 1,2 3
3 4 3,4 2
而且我要的結果,看起來像這樣:
pid opp_pid total wins losses
1 2 10 7 3
2 1 10 3 7
3 4 2 2 0
4 3 2 0 2
它基本上是:每pid
對決總數價值和一個對手的價值,以及他們之間的總和和贏得和失敗的數量。正如你所看到的,你有losing_pid
值永遠不會顯示在winning_pid
列,因爲pid
值沒有勝利,但這些都需要在總計表中。
在配對上使用UNNEST()
有沒有快速解決方案?我不能這樣做:
SELECT DISTINCT ON (pair) UNNEST(pair) as pid, COUNT(*) FILTER (WHERE pid = winning_pid) AS wins
,因爲它不能識別FILTER
條款中的pid
。
我也在想UNNEST()
不是我想要的,因爲我想要一個既有pid
值也有結果表,而不僅僅是一個。
謝謝!