在Bigquery中,对于max_by和regr_slope函数,使用标准SQL的Bigquery中是否有任何等效函数。如果不是这样,那么如何实现。
谢谢, Maniyar
答案 0 :(得分: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
答案 1 :(得分:0)
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;
或者,如果您的BigQuery版本支持,则可以使用LIMIT
:
SELECT col
FROM yourTable
ORDER BY val DESC
LIMIT 1;
关于在BigQuery中进行线性回归,请参考this highly upvoted Stack Overflow问答。