表中的中值与数字:计数格式

时间:2015-10-06 06:27:07

标签: mysql sql hive qubole

给出一个表

RequestContextListener

代表这样一个数字序列:0,0,0,0,0,0,0,1,2,2,2,4

使用sql查找中位数,在本例中为0。您需要在hive(qubole)

中运行此查询

思想?

1 个答案:

答案 0 :(得分:1)

Hive中有一个相当简单的解决方案。你在这里需要UDF这个。从本质上讲,您希望取消汇总您的计数数据,然后将其计算出来。

<强>查询

add jar /path/to/jar/brickhouse-0.7.1.jar;
create temporary function numeric_range as 'brickhouse.udf.collect.NumericRange';

select percentile(number, 0.50) median
from (
  select number
  from db.table
  lateral view numeric_range(count) n1 as n) x 

内部查询将产生

0
0
0
0
0
0
0
1
2
2
2
4

然后您可以使用此列中的percentile()函数

<强>输出

median
------
0.0