Нормализация (статика) в больших запросах: как мне исправить мой код, чтобы получить нормализованные числа? - PullRequest
0 голосов
/ 25 января 2019

Я хочу нормализовать данные в большом запросе, но я получил сообщение об ошибке, как показано ниже: «ВЫБЕРИТЕ тест столбца ссылок на выражения списка, который не является ни сгруппированным, ни агрегированным» и (test-AVG (test)) подчеркнут.

Я знаю, что Python или другой инструмент легко нормализуют данные, но я должен сделать это в большом запросе.

Как мне изменить этот код?

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 голосов
/ 25 января 2019

Кажется, вы хотите оконные функции. Я бы пошел на:

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

Это стандартизирует / нормализует значение test в каждой строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...