create table if not exists t_course( id int, course string ) row format delimited fields terminated by ','; 第二步,载入数据,注意文件目录,不要照搬 load data local inpath '/opt/tmp/test/course.txt' into table t_course; 第三步,创建一个新表,对原有表的数据进行处理 create table id_courses as select t1.id as id,t1.course as id_course,t2.course course from(select id as id,collect_set(course) as course from t_course group by id) t1 join ( select collect_set(course) as course from t_course )t2; 第4步,用case when 解决 select id, case when array_contains(id_course,course[0]) then 1 else 0 end as a, case when array_contains(id_course,course[1]) then 1 else 0 end as b, case when array_contains(id_course,course[2]) then 1 else 0 end as c, case when array_contains(id_course,course[3]) then 1 else 0 end as d, case when array_contains(id_course,course[4]) then 1 else 0 end as e, case when array_contains(id_course,course[5]) then 1 else 0 end as f from id_courses;
最后,得到答案,如图所示
乐于奉献共享,帮助你我他!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)