在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函数,但没有同时使用排序和区分和...
在子查询中使用distinct
-使用group by
: