hiveQL if语句在一行重新组合

时间:2013-01-26 01:33:15

标签: hive hiveql

查询:

select IF(type='view', count(*), 0), IF(type='click', count(*), 0)
from ad_events
where year=2013 and month=01 and day=18 and (hour=01 or hour=02)
group by type

结果:

      _c0       _c1
0      0         0
1      0         0
2      0       1368
3      0         0
4      0         0
5      0         0
6      0         0
7      0         0
8   277917       0
9      0         0

无论如何只能在一行中得到结果吗? :

      _c0       _c1
0    277917     1368

2 个答案:

答案 0 :(得分:5)

好的,我刚刚在嵌套查询中完成了它:

select SUM(c), SUM(v)
from (
select tracking_id, IF(type='view', count(*), 0) AS v, IF(type='click', count(*), 0) AS c
from ad_events
where year=2013 and month=01 and day=18
group by tracking_id, type
) t2

答案 1 :(得分:2)

请尝试以下

select
   type,
   count(type) TypeCount
from ad_events
where
   year=2013 and 
   month=01 and 
   day=18 and 
   (hour=01 or 
    hour=02)
group by type