Bigquery标准SQL“ max_by”和“ regr_slope”函数

时间:2019-01-10 10:41:35

标签: google-bigquery gradient maxby

在Bigquery中,对于max_by和regr_slope函数,使用标准SQL的Bigquery中是否有任何等效函数。如果不是这样,那么如何实现。

谢谢, Maniyar

2 个答案:

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