sql 计算中位数
中位数
计算有限个数的数据的中位数的方法是:把所有的同类数据按照大小的顺序排列。如果数据的个数是奇数,则中间那个数据就是这群数据的中位数;如果数据的个数是偶数,则中间那2个数据的算术平均值就是这群数据的中位数。
select avg(num)
from (
select
num,
row_number() over(order by num) as rn1,
row_number() over(order by num desc) as rn2
from input
)
where rn1 = rn2 or ABS(rn1-rn2) = 1
图解: