私は比較的簡単な質問がありますが、私は必要な結果を表示するために適切なSQLクエリを書くことができません。試合に参加した選手のIDを示す列、勝者、結果にその試合を含めるかどうかを示す別のブール値の列を含むテーブルがあります。だから、列は次のとおりです。IF文を使用してMySQLの行を数えるには?
player1_id | player2_id | winner_id | use
のでwinner_id
は勝ったプレイヤーに応じて、最初の2つの列の1からの値です。私は特定のプレイヤーがちょうどuse
フラグがアップしている行を使用してゲームに勝った回数をカウントしたい場合は、私は簡単にそれを行うことができます。
SELECT COUNT(*) AS total, winner_id
FROM table
WHERE use = 1
GROUP BY winner_id
ORDER BY total DESC
しかし、私はまた、同じカウントをしたいが、試合を失った選手たちのために。言い換えれば、私はwinner_id
ではなく、winner_id
と異なるものに応じて、player1_id
またはplayer2_id
の値になる敗者IDでグループ化したいと思います。どのように簡単なクエリでそれを行うための手掛かり?あなたはloosersをカウントするために、次のように行うことができます
編集ご質問や、サンプルデータと望ましい結果を提供します。 –
ひどいテーブルデザイン - 第1列の勝者、第2列の対戦相手。 – user3741598
表のデザインは良いとは言わないが、誰が勝つのかを事前に知らなくても、2人の選手の間にはいくつかの試合が設定されている。 – mmvsbg