2014-11-20 82 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'