如何在BigQuery SQL中创建客户最近五次唯一购买的逗号分隔字符串?

问题描述 投票:0回答:1

在BigQuery中,我需要用一个字符串填充字段,其中包含客户购买的最后五个独特产品。我以前使用过STRING_AGG函数,但没有同时使用排序和区分,这就是我遇到问题的地方。因此,我正在尝试以下操作(如果删除DISTINCT,则可以使用):

SELECT  ps.customerID, STRING_AGG( DISTINCT ps.productId ORDER BY ps.orderDate DESC LIMIT 5 ) AS lastFiveProducts
FROM view.purchases  AS ps
WHERE ps.market = 'SE'
GROUP BY ps.customerID
limit 100

[我希望STRING_AGG产生类似以下的字符串:“ 23423,63764,62345,00787,91228”

Bigquery给出错误:

“同时具有DISTINCT和ORDER BY参数的聚合函数只能在[1:67]处作为该函数的参数的ORDER BY表达式。”>

所以这些不能合并。

可以使用什么其他方式构建这种领域?子查询?

在BigQuery中,我需要用一个字符串填充字段,其中包含客户购买的最后五个独特产品。我以前使用过STRING_AGG函数,但没有同时使用排序和区分和...

sql google-bigquery
1个回答
1
投票

在子查询中使用distinct-使用group by

© www.soinside.com 2019 - 2024. All rights reserved.