将多行合并为1个交易数据

问题描述

需要您的帮助来建议我这个问题:)。

我想创建一个事务数据集。 这是我的初始数据集

user_id    date_key    channel      order_id
123        1 sep       Affiliates   -
123        2 sep       Price Comp   -
123        3 sep       Direct       12342213
435        2 sep       Organic      -
435        7 sep       Direct       45485485

我想将上面的表修改成这样的事务数据集。 它将显示用户从首次访问到购买的过程(假设从会员访问user_id 123,然后进行价格比较和直接购买(结束购买)。

user_id    channel_journey                   order_id
123        Affiliates - Price Comp - Direct  12342213
435        Organic - Direct                  45485485

你们知道并建议我如何进入第二张桌子吗?

预先感谢:)

解决方法

考虑使用STRING_AGG

SELECT user_id,STRING_AGG(channel,' - ' ORDER BY date_key),MAX(order_id)
FROM `dataset.table`
GROUP BY user_id