Bigquery 中是否有任何等效函数使用标准 SQL 用于 max_by 和 regr_slope 函数。如果不是如何实现这一点。
谢谢, 马尼亚尔
Bigquery 中是否有任何等效函数使用标准 SQL 用于 max_by 和 regr_slope 函数。如果不是如何实现这一点。
谢谢, 马尼亚尔
正如@felipe-hoffa 在另一个问题中评论的那样,替换的最短方法MAX_BY
似乎是这样使用ARRAY_AGG
的:
SELECT
ARRAY_AGG(x ORDER BY y DESC LIMIT 1)[OFFSET(0)] AS max_x_by_y
FROM yadda_yadda
BigQuery 似乎不支持这些功能中的任何一个。对于MAX_BY
,您可以只使用ROW_NUMBER
:
-- replacement for MAX_BY(col, val)
-- find the value for col which generates the MAX value
WITH cte AS (
SELECT col, ROW_NUMBER() OVER (ORDER BY val DESC) rn
FROM yourTable
)
SELECT col
FROM cte
WHERE rn = 1;
或者,LIMIT
如果您的 BigQuery 版本支持,您可以使用:
SELECT col
FROM yourTable
ORDER BY val DESC
LIMIT 1;
至于在 BigQuery 中进行线性回归,我建议您参考这个备受好评的 Stack Overflow问题和答案。