select avg(midian) from( select a.midian from ( select d.midian ,row_number() over(order by midian) as rn ,count(*)over() as cnt from t_basic_07 d )a where a.rn in (cnt/2,(cnt+1)/2,(cnt+2)/2))t