3

Bigquery 中是否有任何等效函数使用标准 SQL 用于 max_by 和 regr_slope 函数。如果不是如何实现这一点。

谢谢, 马尼亚尔

4

2 回答 2

1

正如@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

于 2021-01-20T20:21:08.497 回答
1

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问题和答案。

于 2019-01-10T10:50:21.417 回答