【发布时间】:2013-11-21 21:05:17
【问题描述】:
如果我的表看起来像这样,如何在 mysql 中达到预期的结果。
结果|年份
1 |2011
2 |2011
1 |2011
0 |2011
1 |2012
2 |2012
1 = 赢,2 = 输,0 = 平
每年都可以有多个这样的值。不知道如何才能获得如下所需的结果。
year won lost draw totalPlayed
2011 2 1 1 3
2012 1 1 0 2
我尝试了以下查询,但没有得到想要的结果
select year,
league_types.league_name,
sum(if(result = 1,1,0)) as won,
sum(if(result = 0,1,0)) as draw,
sum(if(result = 4,1,0)) as noResult,
sum(if(result = 2,1,0)) as lost,
sum(if(result = 3,1,0)) as tied,
sum(if(result > 0 and result < 4,1,0)) as played
from match_score_card
inner join fixtures on match_score_card.match_id = fixtures.match_id
inner join league_types on fixtures.league_id = league_types.league_id
where
team_id = 1 group by year order by year desc
【问题讨论】:
-
您必须按年份分组,league_types.league_name 使用 agg 函数(例如 sum())
-
也试过了,但没用。
标签: mysql select group-by sum case