#sql #vertica
Вопрос:
У меня есть следующая таблица
EURtoUSD
в столбце всегда отображается одно и то же значение для всех дат в разных группах car
.
Как я могу создать следующую таблицу?
Ответ №1:
Использование условной агрегации:
select date, eurtousd,
max(case when car = 'Audi' then priceeur end) as audi,
max(case when car = 'BMW' then priceeur end) as bmw,
max(case when car = 'MB' then priceeur end) as mb
from t
group by date, eurtousd;
Комментарии:
1. Спасибо. Не могли бы вы также помочь, если, например, я хочу снова создать длинную таблицу (1-я таблица) из широкой таблицы (2-я таблица), что мне следует использовать тогда?
2. @ПрийтМетс . . . Ты можешь использовать
union all
.3. Это сделает запрос слишком длинным (в реальном случае автомобилей больше). Есть ли что-то похожее на функцию UNPIVOT (Oracle)?
4. Я боюсь, что у Vertica нет функции поворота или отключения .. Мой обычный обходной путь-использовать SQL , генерирующий SQL, чтобы, да, создать инструкцию SQL, которая выполняет поворот.