【问题标题】:BigQuery - Concatenate multiple rows and columns into a single rowBigQuery - 将多行和多列连接成一行
【发布时间】:2020-03-14 00:47:12
【问题描述】:

我有这样的专栏

id|name | Country
1|John | usa
1|Tom  | Canada
1|Bob  | Italy
2|Jack | China
2|Tim  | USA

我需要像这样的输出

id|Text
1| John USA , Tom Canada , Bob Italy  
2|Jack China, Tim USA

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    以下是 BigQuery 标准 SQL

    #standardSQL
    SELECT id, STRING_AGG(CONCAT(name, ' ' , country)) text 
    FROM `project.dataset.table`
    GROUP BY id   
    

    您可以使用您问题中的示例数据进行测试,使用上面的示例,如下例所示

    #standardSQL
    WITH `project.dataset.table` AS (
      SELECT 1 id, 'John' name, 'Usa' country UNION ALL
      SELECT 1, 'Tom', 'Canada' UNION ALL
      SELECT 1, 'Bob', 'Italy' UNION ALL
      SELECT 2, 'Jack', 'China' UNION ALL
      SELECT 2, 'Tim', 'USA' 
    )
    SELECT id, STRING_AGG(CONCAT(name, ' ' , country)) text 
    FROM `project.dataset.table`
    GROUP BY id   
    

    有输出

    Row id  text     
    1   1   John Usa,Tom Canada,Bob Italy    
    2   2   Jack China,Tim USA   
    

    【讨论】:

      猜你喜欢
      • 2017-06-19
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      • 2022-11-23
      • 2023-01-15
      相关资源
      最近更新 更多