mysql查询选择一个不同的列和另一列中的值的计数哪里列像不同的coumn?

时间:2013-05-03 19:04:39

标签: mysql

我的数据表如下:

ID WEEK   RESULT 
1   13     GOOD
2   13     BAD
3   13     GOOD
4   14     GOOD
5   14     BAD
6   15     BAD

我需要一个sql查询来创建一个数组,如下所示:

WWEK   GOOD_COUNT   BAD_COUNT
13            2             1 
14            1             1
15            0             1

任何人都可以帮我找一个合适的mysql查询吗?

1 个答案:

答案 0 :(得分:3)

您可以使用带有CASE表达式的聚合函数将行转换为列:

select week,
  sum(case when result = 'good' then 1 else 0 end) GoodResult,
  sum(case when result = 'bad' then 1 else 0 end) BadResult
from yt
group by week;

请参阅SQL Fiddle with Demo