Разделение в Impala SQL выдает ошибку - PullRequest
0 голосов
/ 06 мая 2018

Я пытаюсь рассчитать текущую сумму потерь по месяцам на Импале, используя TOAD

Следующий запрос выдает ошибку - выражение списка выбора, не созданное в результате агрегации (отсутствует в выражении group by)

select
segment,
year(open_dt) as open_year,
months,
sum(balance)
sum(loss) over (PARTITION by segment,year(open_dt) order by months) as NCL 
from

tableperf
where
year(open_dt) between 2015 and 2018

group by 1,2,3

1 Ответ

0 голосов
/ 06 мая 2018

Вы смешиваете агрегацию и оконные функции. Я думаю, вы можете захотеть:

select segment, year(open_dt) as open_year, months,
       sum(balance)
       sum(sum(loss)) over (PARTITION by segment, year(open_dt) order by months) as NCL 
from tableperf
where year(open_dt) between 2015 and 2018
group by 1, 2, 3;

Здесь рассчитывается совокупный убыток за каждый год. Обратите внимание на использование sum(sum(loss)). Внутренняя sum() является функцией агрегирования. Внешний sum() является оконной функцией.

...