У меня есть некоторые проблемы при создании новой таблицы из старой с новыми столбцами, определенными инструкциями case.
Мне нужно добавить в новую таблицу три столбца, где я вычисляю максимум исходя из разных условий.В частности,
- , если время находится между 1 и 3, я определяю переменную max_var_1_3 как max ((- 1) * var),
- , если время между 1 и 6, Iопределить переменную max_var_1_6 как max ((- 1) * var),
- , если время между 1 и 12, я определяю переменную max_var_1_12 как max ((- 1) * var),
Функция max должна принимать максимальное значение переменной var в окне между 1 и 3, 1 и 6, 1 и 12 соответственно.
Я написал это
create table new as(
select t1.*,
(case when time between 1 and 3 then MAX((-1)*var)
else var
end) as max_var_1_3,
(case when time between 1 and 6 then MAX((-1)*var)
else var
end) as max_var_1_6,
(case when time between 1 and 12 then MAX((-1)*var)
else var
end) as max_var_1_12
from old_table t1
group by time
) with data primary index time
но, к сожалению, это не работает.В old_table уже есть несколько столбцов, и я хотел бы импортировать их все, а затем сравнить старую таблицу с новой.Я получил ошибку, которая говорит, что должно быть что-то между) и ',', но я не могу понять, что.Я использую Teradata SQL.Не могли бы вы мне помочь?
Большое спасибо