2014-11-20 79 views
0

匹配如何查詢這是MySQL?

ID| radiant_name | dire_name | radiant_win 
1 |   LV |  LGD | true 
2 |   LGD |  LV | false 
3 |   LV |  LGD | false 
4 |   LV |  LGD | false 
5 |   LGD |  LV | false 

所需的輸出:d:

前。

我曾嘗試:

使用GROUP BY和SUM但結果是不同的。

ex。查詢:

SELECT SUM(IF(radiant_win = 1? 1, 0)) as LV, SUM(IF(radiant_win = 1? 0,1)) as LGD 


前。沒有預期的效果〜_〜:

Team "LV" wins 1. 
Team "LGD" wins 4. 

回答

1

我相信這是你在找什麼,如果需要每輻射隊獲勝:

SELECT radiant_team_id, count(*) FROM yourtable GROUP BY radiant_team_id HAVING radiant_win = 'true'; 

或者,如果你需要每可怕的球隊每輻射隊勝,和勝太,那麼你可能想要使用UNIONS,但我不明白爲什麼你會想要,因爲你可以找到使用上面的查詢。

+0

它不工作〜_〜。我想看看每個團隊的勝利總數並確定誰是贏家 – ronscript 2014-11-21 03:43:12

+0

'having clause'中的未知列'radiant_win' – ronscript 2014-11-21 05:13:44

+0

請確保您有列名爲'radiant_win',正如您在問題中提到的,檢查拼寫,還有您通過更改表格中的列來改變了你的問題,你必須堅持一個問題。 – 2014-11-21 05:52:21

1

這是你在找什麼?

SELECT DISTINCT COUNT(radiant_team_id), radiant_team_id 
FROM yourtablename 
WHERE radiant_win='true'