全部产品
MaxCompute

如何用SQL实现多行数据转一条

更新时间:2017-08-21 15:03:32   分享:   

用户需求


会有这样一些需求,我希望把多条数据压缩成一条数据,怎么做?

解决方法


以这样的数据为例:

classgendername
1MLiLei
1FHanMM
1MJim
2FKate
2MPeter

这个根据需求,比较常见的是

classnames
1LiLei,HanMM,Jim
2Kate,Peter

类似这样使用某个分隔符做字符串拼接的,可以使用

  1. SELECT class, wm_concat(‘,’, name) FROM students GROUP BY class;

另外一种常见需求是

classcnt_mcnt_f
121
211

类似这样是要转多列的,可以使用

  1. SELECT class
  2. , SUM(CASE WHEN gender = 'M' THEN 1 ELSE 0 END) AS cnt_m
  3. , SUM(CASE WHEN gender = 'F' THEN 1 ELSE 0 END) AS cnt_f
  4. FROM students
  5. GROUP BY class;

如问题还未解决,请联系售后技术支持

 

本文导读目录
本文导读目录
以上内容是否对您有帮助?