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
我有一个 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