Конвертировать строки в столбец без использования Pivot - PullRequest
0 голосов
/ 08 октября 2019

У меня есть набор данных, но пример данных будет выглядеть следующим образом:

 Country Date       Category   X    Y
 IN     2011-11-22  B          1    0
 BA     2010-11-23  B         11    0.2
 IN     2011-11-22  A          1    0
 BA     2011-11-23  A          1    1
 IN     2011-07-28  A          1    0

хочу преобразовать его в: Вывод

 Country Date       B_X    B_Y  A_X  A_Y
 IN     2011-11-22  1       0    1    0
 BA     2010-11-23  11      0.2  1    1
 IN     2011-07-28  0       0    1    0

Я пытался использовать caseно это не дает мне желаемого результата, может кто-нибудь помочь !!

1 Ответ

5 голосов
/ 08 октября 2019

Я думаю, вы просто хотите агрегировать по country / date и использовать условное агрегирование:

select country, date,
       sum(case when category = 'B' then x end) as x_b,
       sum(case when category = 'B' then y end) as y_b,
       sum(case when category = 'A' then x end) as x_a,
       sum(case when category = 'A' then y end) as y_a
from t
group by country, date;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...