sql 计算中位数

发布时间 2023-07-20 00:57:39作者: ttttttian

中位数

计算有限个数的数据的中位数的方法是:把所有的同类数据按照大小的顺序排列。如果数据的个数是奇数,则中间那个数据就是这群数据的中位数;如果数据的个数是偶数,则中间那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

图解: