Как я могу преобразовать эти четыре строки в столбцы с помощью SQL

#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