#sql #vertica
Вопрос:
Я хотел бы получить строки для таблицы шагов в качестве столбцов для новой таблицы
Таблица шагов
ID |Steps | Steps_Date 1 | Create | 5/9/2020 1 |Schedule | 5/11/2020 1| Complete | 5/12/2020 1| Request | 5/10/2020 2| Request | 5/12/2021
Это строки таблицы шагов, преобразованные в столбцы.
Новая таблица
ID | Create | Request | Schedule | Complete 1 | 5/9/2020|5/10/2020|5/11/2020|5/12/2020 2 | Null | 5/12/2021 | Null | Null
Комментарии:
1. Добавьте еще несколько строк примерных данных, а также укажите ожидаемый результат. (Результат в одну строку дает слишком мало.)
2. Я добавил больше к телу 😀
Ответ №1:
Сделай а GROUP BY
. Используйте case
выражения для выполнения условной агрегации:
select id, max(case when Steps = 'Create' then Steps_Date end) as create_date, max(case when Steps = 'Request' then Steps_Date end) as Request_date, max(case when Steps = 'Schedule' then Steps_Date end) as Schedule_date, max(case when Steps = 'Complete' then Steps_Date end) as Complete_date from Steps_table group by id