全部產品
Search
文件中心

MaxCompute:多行資料合併為一行資料

更新時間:Jun 19, 2024

本文為您介紹,如何使用SQL實現多行資料合併為一行資料。

樣本資料

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

    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

    1

    2

    2

    2

    1

    1