多行数据合并为一行数据

更新时间:2023-10-17 06:29:10

本文为您介绍,如何使用SQL实现多行数据合并为一行数据。

示例数据

class

gender

name

class

gender

name

1

M

LiLei

1

F

HanMM

1

M

Jim

1

F

HanMM

2

F

Kate

2

M

Peter

使用示例

  • 示例1:将class相同的name合并为一行,并对name去重。去重操作可通过嵌套子查询实现。

    SELECT class, wm_concat(distinct ',', name) as names FROM students GROUP BY class;
    说明

    wm_concat是字符拼接函数,详情请参见WM_CONCAT

    输出结果如下。

    class

    names

    class

    names

    1

    LiLei,HanMM,Jim

    2

    Kate,Peter

  • 示例2:统计不同class对应的男女人数。

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

    输出结果如下。

    class

    cnt_m

    cnt_f

    class

    cnt_m

    cnt_f

    1

    2

    2

    2

    1

    1

  • 本页导读 (1)
  • 示例数据
  • 使用示例
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等