【问题标题】:Nesting query results in BigQuery [duplicate]在 BigQuery 中嵌套查询结果 [重复]
【发布时间】:2021-06-01 17:38:44
【问题描述】:

我有一个查询,其结果如下所示:

session_id country vendor_id page_name qty_visits
123 a abc home 1
123 a abc shop 4
456 b abc home 78
456 b xyz home 9
456 b xyz cart 6

我想嵌套这个表,以便 page_nameqty_vistisstruct 中的数组,称为 page_visits。基本上,我的最终结果应该是一个三行表(由session_idcountryvendor_id 标识),第四列称为page_visits,它本身是一个有两列的结构,每一列是数组。其中一列有所有访问过的页面的列表,另一列有它被访问的次数。像这样

session_id country vendor_id page_visits.page_name page_visits.qty_visits
123 a abc home 1
shop 4
456 b abc home 78
456 b xyz home 9
cart 6

作为检查,select count(*) from final_table 的结果应该是 3,而不是 5(这是没有嵌套的结果)。

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    使用array_agg:

    select
      session_id,
      country,
      vendor_id,
      array_agg(struct(page_name, qty_visits)) as page_visits
    from mytable
    group by session_id, country, vendor_id
    

    【讨论】:

    • 我在尝试中错过了GROUP BY!你是个天才!多谢!!我会尽快接受答案!
    猜你喜欢
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多