Google bigquery 运行STRING_AGG函数时查找错误

Google bigquery 运行STRING_AGG函数时查找错误,google-bigquery,string-aggregation,Google Bigquery,String Aggregation,我想问一下BigQuery中的脚本。因此,我尝试使用下面的查询 SELECT id, STRING_AGG(DISTINCT status, ', ' ORDER BY timestamp) AS grouping FROM table GROUP BY id 但我无法运行它,因为它给了我一个错误 同时具有DISTINCT和ORDER BY参数的聚合函数只能使用作为函数参数的ORDER BY表达式 有人能帮我纠正这个错误吗?提前谢谢你 是否要按时间戳排序不同的状态? 如果是这样,您可以先按时间

我想问一下BigQuery中的脚本。因此,我尝试使用下面的查询

SELECT id, STRING_AGG(DISTINCT status, ', ' ORDER BY timestamp) AS grouping
FROM table
GROUP BY id
但我无法运行它,因为它给了我一个错误

同时具有DISTINCT和ORDER BY参数的聚合函数只能使用作为函数参数的ORDER BY表达式


有人能帮我纠正这个错误吗?提前谢谢你

是否要按时间戳排序不同的状态? 如果是这样,您可以先按时间戳对每个
id
status
进行排序,然后进行聚合

WITH ordered as (
    SELECT id, status
    FROM table
    ORDER BY id, row_number() over (partition by id ORDER BY timestamp)
)
SELECT id, STRING_AGG(DISTINCT status, ', ') AS grouping
FROM ordered
GROUP BY id

当您对
状态
的不同值进行排序时-您希望使用具有该状态的多行的
时间戳
?这就是为什么
STRING_AGG
中不支持它的原因,因为它不知道如何订购。因此,您需要澄清您的要求/期望,以便我们为您提供帮助