1

次の表があります。

+---------+------+------------+
|プレイヤー |ゲーム |ステータス |
+---------+------+------------+
|Player01 |GameA |未完成 |
|Player02 |GameA |未完成 |
|Player03 |GameC |完了 |
|Player04 |GameA |未完成 |
|Player05 |GameB |完了 |
|Player06 |GameB |完了 |
|Player07 |GameA |未完成 |
|Player08 |GameA |完了 |
|Player09 |GameC |未完成 |
|Player10 |GameB |完了 |
|Player11 |GameB |未完成 |
|Player12 |GameA |完了 |
.....
+---------+------+------------+

そして、各ゲームのプレイヤー数とゲームを完了したプレイヤー数を表示したい:

+--------+-----------------+----------+
|ゲーム |プレイヤー数|完了 |
+--------+-----------------+----------+
|ゲームA | 6 | 2 |
|ゲームB | 4 | 3 |
|ゲームC | 2 | 1 |
...
+--------+-----------------+----------+

そのタスクを実行するための最も簡単な SQL 選択コマンドは何ですか? ありがとうございました。

4

2 に答える 2

1

これを試して

select Game , count(*) NumPlayers,
sum(case when status = 'completed' then 1 else 0 end) completed 
from table
group by game
于 2013-03-26T13:46:44.747 に答える
0

条件付き合計が必要です。

select game, count(distinct Player) as NumPlayers,
       sum(case when status = completed then 1 else 0 end) as Status
from t
group by game
于 2013-03-26T13:46:27.277 に答える