bigquery中的规范化(静态):如何解决我的代码以获得规范化的数字?

时间:2019-01-25 00:58:41

标签: sql google-bigquery

我想标准化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

1 个答案:

答案 0 :(得分:0)

您似乎想要窗口功能。我会去的:

SELECT ( (test - AVG(test) OVER () ) / 
         NULLIF(STDDEV_POP(test) OVER (), 0) 
       ) AS test_normalized
FROM temp;

这将标准化/标准化每行中test的值。