Sql BigQuery-合并记录的值
我试图将个人购买的商品数量合并到一行中,以便在BigQuery中运行分类篮子分析。以下是我的数据:Sql BigQuery-合并记录的值,sql,google-bigquery,Sql,Google Bigquery,我试图将个人购买的商品数量合并到一行中,以便在BigQuery中运行分类篮子分析。以下是我的数据: Name Date_Processed Items.SKU John Feb-1 ABC123 ABC245 CST099 Sarah Feb 3 ABC245
Name Date_Processed Items.SKU
John Feb-1 ABC123
ABC245
CST099
Sarah Feb 3 ABC245
CST099
CST099
CZT011
Emily Feb 3 ABC123
正如您所看到的,每个购买者在数据中有一条主线,然后每个购买的物品有一条主线。以下是我现在拥有的,但我不知道如何组合或连接数据:
SELECT name, date, ARRAY(SELECT sku FROM UNNEST(line_items) AS itemSKU ORDER BY sku asc)
FROM (
SELECT *, ROW_NUMBER() OVER(PARTITION BY id) AS instance
FROM `shopify.orders`
) orders -- identify duplicate rows
WHERE instance = 1
AND
date(date_processed) BETWEEN date_sub(current_date(), interval 30 day) AND current_date
我可以在BigQuery中做些什么来让这些数据看起来像这样:
Name Date_Processed Items.SKU
John Feb-1 ABC123,ABC245,CST099
Sarah Feb 3 ABC245,CST099,CST099,CZT011
Emily Feb 3 ABC123
我正在考虑使用ARRAY_CONCAT,但无法实现
SELECT name, date,
(SELECT SRING_AGG(sku ORDER BY sku) FROM UNNEST(line_items)) AS skus
FROM `shopify.orders`
还是少一点/少一点冗长
SELECT name, date,
(SELECT SRING_AGG(sku ORDER BY sku) FROM t.line_items) AS skus
FROM `shopify.orders` t
SQL表表示无序集。因此,如果这些确实是数据库中的行,则不能将它们合并(除非有其他列)。我将注意到,在BigQuery中,如果项目是数组,您将看到类似的布局。这是非常正确的!工作得很有魅力。字符串_agg工作正常。我会尽快接受。