原标题:mysql行列转换
1.一维转二维
上图为成绩表中数据,现希望将数据转换为下图。
①静态:转化为二维表后的列名及列数是确定不变的,本例中即course只有数学、语文、英语这三门课。
select s_name,
max(if(course="数学",score,0)) as 数学,
max(if(course='语文',score,0)) as 语文,
max(if(course='英语',score,0)) as 英语,
sum(score) as 总分
from grade group by s_name;
②动态:转化为二维表后的列名及列数是可变的,本例中即course的课程数不确定。
set @s