代码之家  ›  专栏  ›  技术社区  ›  Shahin Ghannadian

在大查询中将多个列嵌套到一个数组中

  •  0
  • Shahin Ghannadian  · 技术社区  · 7 年前

    BQ Table enter image description here

    共有1.026行,有944个唯一的modemio\u cat\u id

    如何返回将所有非空列嵌套到 1个单阵列 每种模式都叫“父母”?

    例如:对于modemio\u cat\u id=1111118

    nested catx_id into parent

    最后按modemio\u cat\u id+累加所有数组以防重复

    :此查询总是为每个modemutti\u cat\u id返回相同的数组:

    SELECT modemio_cat_id, ARRAY (
      SELECT AS STRUCT cat1_id, cat2_id FROM `modemutti-8d8a6.categorization.test`
      ) as parent
    FROM `modemutti-8d8a6.categorization.test` 
    group by modemio_cat_id
    
    1 回复  |  直到 7 年前
        1
  •  4
  •   Mikhail Berlyant    7 年前

    下面是BigQuery标准SQL的示例

    #standardSQL
    SELECT modemio_cat_id, 
      ARRAY_AGG(DISTINCT cat_id IGNORE NULLS) parents
    FROM `modemutti-8d8a6.categorization.test`,
      UNNEST([cat1_id, cat2_id, cat3_id, cat4_id, cat5_id, cat6_id]) cat_id
    GROUP BY modemio_cat_id