HIVE查询以获取每列中的第一个用户活动条目

时间:2017-08-05 05:18:33

标签: hadoop hive

我有一张表:

id   email_sent email_opened  ad_clicked ts
1001 1          0             0         2017-05-01 02:40:00.0
1001 1          1             0         2017-07-01 02:40:00.0
1001 1          0             0         2017-08-01 02:40:00.0
1001 1          1             0         2017-09-01 02:40:00.0
1001 1          1             1         2017-10-01 02:40:00.0

必需输出:

user_id  first_email_sent       first_email_opened     first_ad_clicked
1001     2017-05-01 02:40:00.0  2017-07-01 02:40:00.0  2017-10-01 02:40:00.0

我使用以下查询来获得此结果:

 select id,
        min(case when email_sent = 1 then ts end)as first_email_sent,
        min(case when email_opened = 1 then ts end)as email_opened, 
        min(case when ad_clicked = 1 then ts end)as ad_clicked 
from adcamp group by id;

有更好的查询吗?

0 个答案:

没有答案