Импала транспонировать столбец в строку - PullRequest
0 голосов
/ 30 апреля 2018

Как преобразовать данные столбца в данные строки в impala Я попробовал какое-то решение, которое не работает в импале, но работает в улье.

Table name : test
Data:
day         name     jobdone
2017-03-25  x_user   5
2017-03-25  y_user   10
2017-03-31  x_user   20
2017-03-31  y_user   1

Я хочу, чтобы данные были такими, как в импале, но в улье

Required Output Data
 Day           x_user     y_user
 2017-03-05    5          10
 2001-03-31    20         1

Я могу сделать это в Hive, используя карту и collect_list. Как я могу сделать в Импале.

1 Ответ

0 голосов
/ 30 апреля 2018

Использование case + min() или max() агрегация:

select day,
       max(case when name='x_user' then jobdone end) x_user,
       max(case when name='y_user' then jobdone end) y_user
  from test
  group by day;

Используйте sum() вместо max(), если на пользователя приходится много записей в день, и вам необходимо их суммировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...