2014-11-11 32 views
17

Tôi có một bảng tổ ong,Làm thế nào để tính toán trung bình trong Hive

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

Tôi muốn tính trung bình của các cột tuổi.

Dưới đây là cách tiếp cận của tôi

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; 

Đánh giá cao bất cứ đề nghị truy vấn

Trả lời

50

Bạn có thể sử dụng chức năng phần trăm để tính trung bình. Hãy thử điều này:

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

Tôi có thể xác nhận rằng tính năng này hoạt động. – Ztyx

+0

Điều gì sẽ xảy ra nếu tôi có một loạt các giá trị kép không phải là ints? @Amar – Danzo

+7

@Danzo hive cung cấp: percentile_approx (DOUBLE col, p [, B]) – zhaozhi

Các vấn đề liên quan