# Write your MySQL query statement belowselectavg(Number) median
from((select Number
from(select Number,sum(Frequency)over(
orderby Number asc) presum
from Numbers
) t1
where presum >= ceil((selectsum(Frequency)from Numbers)/2)orderby Number
limit1)unionall(select Number
from(select Number,sum(Frequency)over(orderby Number desc) presum
from Numbers
) t2
where presum >= ceil((selectsum(Frequency)from Numbers)/2)orderby Number desclimit1)) tmp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
评论区简洁解法
selectavg(Number) median
from(select Number,sum(Frequency)over(orderby Number asc) c1,sum(Frequency)over(orderby Number desc) c2,sum(Frequency)over() cnt
from Numbers
) t
where c1 >= cnt/2and c2 >= cnt/2