之前在https://www.jianshu.com/p/bd63f5b64a27一文中向大家分享了中位数和众数的计算方法,但相对而言,之前中位数的计算方法并不十分容易理解,在这里向大家分享一个更好理解的方法。
首先查看表记录
mysql> select * from graduates;
+-----------+--------+
| name | income |
+-----------+--------+
| 劳伦斯 | 15000 |
| 史密斯 | 20000 |
| 哈德逊 | 15000 |
| 怀特 | 20000 |
| 斯科特 | 10000 |
| 桑普森 | 400000 |
| 肯特 | 10000 |
| 贝克 | 10000 |
| 迈克 | 30000 |
| 阿诺德 | 20000 |
+-----------+--------+
10 rows in set (0.00 sec)
中位数符合:
有一半及以上的数比中位数大,而且有一半及以下的数比中位数小
mysql> select avg(distinct income)
-> from
-> (select g1.income from graduates g1,graduates g2
-> having
-> sum(case when g2.income>=g1.income then 1 else 0 end)>=count(*)/2
-> and
-> sum(case when g2.income<=g1.income then 1 else 0 end)>=count(*)/2
-> )temp;
+----------------------+
| avg(distinct income) |
+----------------------+
| 15000.0000 |
+----------------------+
1 row in set (0.01 sec)
网友评论