2014-11-11 7 views
17

У меня есть улей стол,Как рассчитать медиану в улье

name age  sal 
A  45  1222 
B  50  4555 
c  44  8888 
D  78  1222 
E  12  7888 
F  23  4555 

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

Ниже мой подход

select min(age) as HMIN,max(age) as HMAX,count(age) as HCount, 
IF(count(age)%2=0,'even','Odd') as PCOUNT 
from v_act_subjects_bh; 

Цените любое предложение, запрос,

ответ

50

Вы можете использовать функцию процентиля для вычисления медианы. Попробуйте следующее:

select percentile(cast(age as BIGINT), 0.5) from table_name 
+2

Я могу подтвердить, что это работает. – Ztyx

+0

Что делать, если у меня была куча двойных значений isnstead от ints? @Amar – Danzo

+7

@ Danzo hive предлагает: percentile_approx (DOUBLE col, p [, B]) – zhaozhi

Смежные вопросы