sto avendo qualche difficoltà a creare una tabella in SQL partendo da una preesistente (con colonne contenenti valori).
Ciò che vorrei fare è aggiungere a questa nuova tabella delle colonne, tre, in cui calcolo il massimo a seconda che siano verificate determinate condizioni. In particolare:
1) se time è compreso tra 1 e 3 definisco una variabile max_var_1_3 come max((-1)*var),
2) se time è compreso tra 1 e 6 definisco una variabile max_var_1_6 come max((-1)*var),
3) se time è compreso tra 1 e 12 definisco una variabile max_var_1_12 come max((-1)*var)
La funzione max serve a prendere il max valore della variabile var nella finestra temporale che va da 1 a 3.
Ciò che ho provato a fare sinora è il seguente:
- Codice:
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
Inutile dire che non funziona. Si aspetta un 'qualcosa' tra ) e ','.
I miei dubbi sono tanti, in particolare sulla creazione di nuove colonne con case statements e con una funzione MAX di aggregazione.
Spero possiate aiutarmi.
Grazie,
Alex