Hive Join - на основе нескольких условий

В одной из моих таблиц, которые содержат столбцы даты и события.

select * from event

это возвращается,

date event
2016-03-20 Launch
2016-03-20 delete
2016-03-20 Launch
2016-03-20 launch
2016-03-19 delete
2016-03-19 stop

Я хочу, чтобы результат, как использование группы по дате

date | count(Luanch) | count(delete) | count(stop)

1 ответ

Решение
select      date
           ,count(case when event = 'Launch' then 1 end) as count_Launch
           ,count(case when event = 'delete' then 1 end) as count_delete
           ,count(case when event = 'stop'   then 1 end) as count_stop

from        event

group by    date
;

    date    | count_Launch | count_delete | count_stop
------------+--------------+--------------+-------------
 2016-03-19 |      0       |      1       |    1
 2016-03-20 |      2       |      1       |    0
Другие вопросы по тегам