注意在偶数情况下,中位数会存在小数,特别注意!
hive里面倒是有个percentile函数和percentile_approx函数,其使用方式为percentile(col, p)、percentile_approx(col, p),p∈(0,1)p∈(0,1)
其中percentile要求输入的字段必须是int类型的,而percentile_approx则是数值类似型的都可以
其实percentile_approx还有一个参数B:percentile_approx(col, p,B),参数B控制内存消耗的近似精度,B越大,结果的准确度越高。默认为10,000。当col字段中的distinct值的个数小于B时,结果为准确的百分位数。
如果我要求多个分位数怎么办呢?,可以把p换为array(p1,p2,p3…p1,p2,p3…),即
percentile_a