如何在mysql中将一行转换为两列?

如何在mysql中将一行转换为两列?,mysql,sql,Mysql,Sql,请不要让它标记它不是重复的我在谷歌上搜索它找不到任何答案 我在mysql中有以下结果 |18-30 | 30 - 45 | 45 - 60 | 60+ | 28 | 26 | 12 | 5 我希望它像下面的结果- |18-30 | 28 | |30 -45| 26 | |45-60 | 12 | | 60+ | 5 | 如何在mysql中获得它?最简单的方法是联合所有: 但是,您的结果可能来自条件聚合。我希望你可以这样做: select

请不要让它标记它不是重复的我在谷歌上搜索它找不到任何答案

我在mysql中有以下结果

|18-30 | 30 - 45 | 45 - 60 | 60+  
|  28  |  26     |   12    | 5
我希望它像下面的结果-

|18-30 |  28 |   
|30 -45|  26 |   
|45-60 |  12 |  
| 60+  |  5  |
如何在mysql中获得它?

最简单的方法是联合所有:

但是,您的结果可能来自条件聚合。我希望你可以这样做:

select (case when age < 30 then '18-29'
             when age < 45 then '30-44'
             when age < 60 then '45-59'
             else '60+'
        end) as agegrp,
       count(*)
from . . .
where age >= 18
group by agegrp;
order by min(age)

如何获得原始结果?可能重复选择SUMIFSELECT DATE_FORMATNOW、%Y'-DATE_FormatBorth_DATE、%Y'-DATE_FORMATNOW、%00-%m-%d'select (case when age < 30 then '18-29' when age < 45 then '30-44' when age < 60 then '45-59' else '60+' end) as agegrp, count(*) from . . . where age >= 18 group by agegrp; order by min(age)