如何获得两个玩家一起玩的总胜利?

时间:2021-07-05 14:28:13

标签: sql postgresql

我有一张名为 flutter run 的表。

<头>
id 游戏ID 玩家
1 1 乔恩 真实
2 1 真实
3 1
4 2 乔恩
5 2 乔恩 真实
6 3 真实

我想要让 jon 和 dan 一起赢得所有比赛。我想我可以通过以下方式做到这一点:

playergame

但是我需要考虑到我想将两行合并并查询为 1。我该怎么做?

2 个答案:

答案 0 :(得分:5)

如果你只想要 gameid ,这是最简单的方法:

select gameid 
from playergame
where player in ('jon' , 'don')
and win = true
group by gameid
having count(distinct player) = 2 

答案 1 :(得分:0)

PIVOT 将为您提供适合您目的的表格格式。使用 PIVOT,您可以生成一个表,每个游戏 ID 一行,然后每个玩家一列,每个游戏 ID 的每个玩家的值是 true 和 false。

要了解有关如何使用 PIVOT 的更多信息,请查看 here

然后就可以使用查询了

SELECT count(*) as wins
FROM playergame_pivot
WHERE Column_Dan = true AND Column_Jon = true