571. 给定数字的频率查询中位数 难度:困难

来源:力扣(LeetCode)
select number as median from ( select number , @r:=@r+1 as st,@r:=@r+frequency-1 as ed ,b.cnt ,if( cnt mod 2 = 0 , cnt div 2, (cnt div 2 )+1) as median_st_index , (cnt div 2 )+1 as median_ed_index from numbers, (SELECT sum(frequency) as cnt FROM `numbers` ) b, (select @r:=0) c order by number ) t where (st <= median_st_index and median_st_index<= ed) or (st<=median_ed_index and median_ed_index<= ed)

浙公网安备 33010602011771号