Несколько случаев, когда в запросе с продолжительностью времени (Redshift) - PullRequest
2 голосов
/ 21 ноября 2019

Я пишу запрос для извлечения данных из таблицы истории. Таблица истории собирает все данные из таблицы реального времени в начале каждого месяца с добавленным столбцом capture_month. Попытка получить значения 'class_type', полученные в разные месяцы. Исходя из доходов каждого аккаунта, их тип_класса может измениться с A на D (A - хороший исполнитель, а D - плохой)

Select
    account_id,
    case when capture_month::date = (date_trunc('month', current_date))::date THEN class_type END as [class_type_I_month_ago],
    case when capture_month::date = (date_trunc('month', current_date) - interval '1 month')::date THEN class_type END as [class_type_II_months_ago],
    case when capture_month::date = (date_trunc('month', current_date) - interval '2 month')::date THEN class_type END as [class_type_III_months_ago]
from history_table

В результате я получу

account_id | class_type_I_month_ago | class_type_II_months_ago | class_type_III_months_ago
 123456    |         A              |          [Null]          |       [Null]
 123456    |       [Null]           |            B             |       [Null]
 123456    |       [Null]           |          [Null]          |         B

Как мне вместо этого получить их все в одну строку?

account_id | class_type_I_month_ago | class_type_II_months_ago | class_type_III_months_ago
 123456    |         A              |             B            |         B
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...