571. Find Median Given Frequency of Numbers

select avg(id) from

               (

               SELECT n1.id,(sum(n2.frequency)-n2.frequency) as left,sum(n2.frequency) as right FROM [number] n1, number n2

               where n2.id <= n1.id

               group by n1.id

               ) a,

               (select sum(frequency) sum from number) s

where

               (sum%2=0 and ((sum/2>=left and sum/2<=right) or ((sum/2)+1 >=left and (sum/2)+1<=right)))

               or

               (sum%2<>0 and (sum/2)+1>=left and (sum/2)+1<=right);

猜你喜欢

转载自www.cnblogs.com/ffeng0312/p/9828545.html
今日推荐