全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
MaxCompute

SQL实现多行数据转一条

更新时间:2017-10-23 23:54:52

本文将为您介绍,如何使用 SQL 实现多条数据压缩为一条。

场景示例

以下表数据为例:

class gender name
1 M LiLei
1 F HanMM
1 M Jim
2 F Kate
2 M Peter

场景一

根据需求,常见场景如下:

class names
1 LiLei,HanMM,Jim
2 Kate,Peter

类似这样使用某个分隔符做字符串拼接,可以使用如下语句:

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

场景二

另外一种常见需求,如下所示:

class cnt_m cnt_f
1 2 1
2 1 1

类似这样转多列的需求,可以使用如下语句:

  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;
本文导读目录