-2

我的数据表如下:

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查询?

4

1 回答 1

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

于 2013-05-03T19:06:22.687 回答