BigQuery 中的循环连接

Loop Concat in BigQuery

我有这样的数据:

Time          Route
11:03:01      home
11:03:04      category
11:03:10      product
11:03:21      cart

我想创建这个:

Time          Route        Journey
11:03:01      home         home
11:03:04      category     home, category
11:03:10      product      home, category, product
11:03:21      cart         home, category, product, cart

如何在 BigQuery 中执行此操作?

以下适用于 BigQuery 标准 SQL

#standardSQL
SELECT *, STRING_AGG(route) OVER(ORDER BY time) journey
FROM `project.dataset.table`

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

#standardSQL
WITH `project.dataset.table` AS (
  SELECT TIME '11:03:01' time, 'home' route UNION ALL
  SELECT '11:03:04', 'category' UNION ALL
  SELECT '11:03:10', 'product' UNION ALL
  SELECT '11:03:21', 'cart' 
)
SELECT *, STRING_AGG(route) OVER(ORDER BY time) journey
FROM `project.dataset.table`
-- ORDER BY time   

结果

Row time        route       journey  
1   11:03:01    home        home     
2   11:03:04    category    home,category    
3   11:03:10    product     home,category,product    
4   11:03:21    cart        home,category,product,cart