2013-03-26 57 views
1

柱等專欄中,我有如下表:SQL命令用來顯示分組,通過與特定的值

 
+---------+------+------------+ 
|Player |Game |Status  | 
+---------+------+------------+ 
|Player01 |GameA |uncompleted | 
|Player02 |GameA |uncompleted | 
|Player03 |GameC |completed | 
|Player04 |GameA |uncompleted | 
|Player05 |GameB |completed | 
|Player06 |GameB |completed | 
|Player07 |GameA |uncompleted | 
|Player08 |GameA |completed | 
|Player09 |GameC |uncompleted | 
|Player10 |GameB |completed | 
|Player11 |GameB |uncompleted | 
|Player12 |GameA |completed | 
..... 
+---------+------+------------+ 

並希望顯示的球員和球員的數字完成了比賽每場比賽:

 
+------+-----------------+----------+ 
|Game |Number of Players|Completed | 
+------+-----------------+----------+ 
|GameA | 6    | 2  | 
|GameB | 4    | 3  | 
|GameC | 2    | 1  | 
... 
+------+-----------------+----------+ 

什麼是最簡單的SQL選擇命令來執行該任務? 謝謝。

回答

0

你想要一個條件summmation:

select game, count(distinct Player) as NumPlayers, 
     sum(case when status = completed then 1 else 0 end) as Status 
from t 
group by game 
1

試試這個

select Game , count(*) NumPlayers, 
sum(case when status = 'completed' then 1 else 0 end) completed 
from table 
group by game 
+2

你們是如此之快。我正準備回答我的第一個問題,你們兩個打敗了我...... – 2013-03-26 13:48:17