需要Hive查询的帮助。
我写了一个Hive查询:
select to_date(from_unixtime(epoch)) as date, count1 , count2, count3 from table1 where count3=168
这给我的结果如下:
date count1 count2 count3
7-15-2015 168 3 7
7-15-2015 168 1 5
7-15-2015 168 4 3
and similarly for other dates
...
最后我需要编写一个返回我的查询,每个日期的count2和count3的中值。 例如:我需要输出:
date count1 count2 count3
7-15-2015 168 3 5
and similarly for other dates
我知道我需要按日期使用group,然后在其上编写子查询。 但我无法写出正确的查询。 任何人都可以帮助我
答案 0 :(得分:0)
中位数是第二四分位数,第五十分位数和第50百分位数。我们可以使用蜂巢中的百分位函数来计算第50个百分位:
select to_date(from_unixtime(epoch)) as date
, count1
, percentile(count2,0.5) as median_ct2
, percentile(count3,0.5) as median_ct3
from table1
where count1=168
group by to_date(from_unixtime(epoch)), count1;