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
值也有结果表,而不仅仅是一个。
谢谢!