我想规范化bigquery中的数据但我得到了如下所示的错误按摩: "SELECT 列表表达式引用既不分组也不聚合的列测试"和(test- AVG(test))带有下划线。
我知道Python或其他工具很容易规范化数据但我必须在 bigquery 中这样做。
我应该如何更改此代码?
SELECT
CASE WHEN STDDEV_POP(test) IS NOT NULL AND STDDEV_POP(test) > 0
THEN
(test - AVG(test))/ STDDEV_POP(test)
ELSE
NULL
END AS test_normalized
FROM temp
你似乎想要窗口函数。 我会选择:
SELECT ( (test - AVG(test) OVER () ) /
NULLIF(STDDEV_POP(test) OVER (), 0)
) AS test_normalized
FROM temp;
这将标准化/规范化每行中test
的值。