全部版块 我的主页
论坛 数据科学与人工智能 大数据分析 Oracle数据库及大数据解决方案
789 0
2019-10-15

AIU人工智能学院:数据科学、人工智能从业者的在线大学。

数据科学(Python/R/Julia)数据分析、机器学习、深度学习


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 @sql='';

select@sql:=concat(@sql,'max(if(course=\'',course,'\',score,0)) as ',course,',')from (select distinct course from grade) as a;

set@strsql=concat('select s_name,',@sql,'sum(score)as 总分 from grade group by s_name;');

prepare stmt from @strsql;

execute stmt;

deallocate prepare stmt;

2.二维转一维

上图为成绩表2中数据,现希望将数据转为成绩表1的数据。

select name,'数学'as course,数学 as score from grade2

union all

select name,'语文'as course,语文 as score from grade2

union all

select name,'英语'as course,英语 as score from grade2

order by name;






二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群