2014-11-11 10 views
17

Ich habe einen Bienenstock Tisch,Wie berechnen Median in Hive

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

I Median der Alters Spalte berechnet werden soll.

Unten ist mein Ansatz

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; 

freuen sich über jede Abfrage Vorschlag

Antwort

50

Sie können die Perzentil-Funktion verwenden, um den Median zu berechnen. Versuchen Sie Folgendes:

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

Ich kann bestätigen, dass dies funktioniert. – Ztyx

+0

Was wäre, wenn ich eine Reihe von doppelten Werten anstelle von Ints hätte? @Amar – Danzo

+7

@Danzo Bienenstock bietet: Perzentil_approx (DOUBLE col, p [, B]) – zhaozhi

Verwandte Themen