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

问题描述 投票:0回答:3

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

谢谢, 马尼亚尔

google-bigquery gradient maxby
3个回答
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;

或者,如果您的 BigQuery 版本支持,您可以使用

LIMIT

SELECT col
FROM yourTable
ORDER BY val DESC
LIMIT 1;

至于在 BigQuery 中进行线性回归,我建议您参考 这个高度赞扬的 Stack Overflow 问答。


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


0
投票

根据 BigQuery 文档,BigQuery 现在原生支持

MAX_BY
作为聚合函数。

至于在 BigQuery 中进行线性回归,我建议您参考 这个高度赞扬的 Stack Overflow 问题和答案,正如另一个答案中已经提到的那样。

© www.soinside.com 2019 - 2024. All rights reserved.