MySQL:将列值转换为带总计的 Headers

MySQL: Convert Column Values to Headers with Totals

我有一个 MySQL table 'dogs' 结构如下:

AgLevel  DogType  Total
1        1        10
2        1        29
3        1        30
1        2        20
2        2        14
3        2        28

所以这表示有 10 只狗的 1 型狗的 ag 级别为 1,29 只狗的类型 1 的 ag 级别为 2 等。

我想像这样重新格式化它:

DogType   Ag1   Ag2   Ag3
1         10    29    30
2         20    14    28

所以在这里我们又可以看到有 10 只 1 型狗,aglevel 为 1。

我该怎么做?

select dogType, 
       sum(case when agLevel = 1 then total else 0 end) as ag1,
       sum(case when agLevel = 2 then total else 0 end) as ag2,
       sum(case when agLevel = 3 then total else 0 end) as ag3
from dogs
group by dogType