Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>if you want to select matches won by <code>&lt;player1&gt;</code> or <code>&lt;player2&gt;</code>, you can use this query:</p> <pre><code>with cte_winners as ( select id, case when winner then player1 else player2 end as player from public.matches ) select * from cte_winners where player in (&lt;player1&gt;, &lt;player2&gt;) </code></pre> <p><strong>update</strong></p> <p>to get desired output your can use something like this:</p> <pre><code>with cte_winners as ( select case when winner then m.player1 else m.player2 end as player, count(*) as wins_v_opp, sum(count(*)) over() - count(*) as loses_v_opp from matches as m where player1 in (4200, 4201) and player2 in (4200, 4201) group by player ) select * from players as p left outer join cte_winners as cw on cw.player = p.id where p.id in (4200, 4201) </code></pre> <p><strong><kbd><a href="http://sqlfiddle.com/#!12/820e0/18" rel="nofollow">sql fiddle demo</a></kbd></strong></p> <p><strong>update2</strong></p> <pre><code>with cte_player as ( select p.id, p.name, p.wins, p.losses, p.rating from players as p where p.name in ('Sinku', 'Kenshiro') ), cte_winner as ( select case when winner then m.player1 else m.player2 end as player, count(*) as wins_v_opp, sum(count(*)) over() - count(*) as loses_v_opp from matches as m where m.player1 in (select p.id from cte_player as p) and m.player2 in (select p.id from cte_player as p) group by player ) select p.id, p.name, p.wins, p.losses, p.rating, m.wins_v_opp, m.loses_v_opp from cte_player as p left outer join cte_winner as m on m.player = p.id </code></pre> <p><strong><kbd><a href="http://sqlfiddle.com/#!12/820e0/21" rel="nofollow">sql fiddle demo</a></kbd></strong></p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload