Как улучшить SQL Teradata с OVER PARTITION BY - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть запрос с более чем 7 столбцами с некоторыми значениями count () и sum (), я был очень медленным, затем я пытался использовать OVER PARTITION BY, но в таблице результатов у меня есть ошибка "Выбрано неагрегатные значения должны быть частью связанной группы ".

Это запрос:

insert into  SQUEMA.TABLE_B
select 
SUBSTR(cast(date as char(6)) ,1,4) ||'-'|| SUBSTR(cast(date as char(6)) ,5,6) as date ,
column1,
column2,
column3,
.
.
.
.
column7,
count(column8) OVER (PARTITION BY date, column1,...,column7) as column8
SUM(column9) OVER(ORDER BY date ) as column9
from  SQUEMA.TABLE_A tb 
where tb.date between '201711' and '201812'
group by date, column1,...,column7;

Ошибка

Выбранные неагрегированные значения должны входить в связанную группу

1 Ответ

0 голосов
/ 22 февраля 2019

Полагаю, вы хотите:

sum(count(column8)) OVER (PARTITION BY date, column1,...,column7) as column8
sum(sum(column9))) OVER (ORDER BY date ) as column9

Вот как вы используете оконные функции с агрегацией.

...