mysql 计算众数_mysql中位数、众数计算

在MySQL中,虽然没有内置的函数直接计算中位数和众数,但可以通过一些查询技巧来实现。本文介绍了如何计算数据表score中课程编号为'02'的学生成绩的中位数和众数。中位数通过子查询和HAVING条件获取,众数则利用GROUP BY和HAVING count(*) >= ALL子查询得出。
摘要由CSDN通过智能技术生成

平均数、中位数、众数常用来描述数据的集中程度,在mysql中,均值的计算较为简单,但中位数和众数尚不支持可以直接计算的函数,在这里向大家介绍一下中位数和众数的计算方法。

本文所使用的数据表为score,包含三个字段:

s_id 为学生id

c_id 为课程id

s_score 为课程成绩

1、中位数

查找课程编号为‘02’号的学生成绩中位数

课程编号为‘02’的课程成绩为

mysql> select s_score from score where c_id='02';

+---------+

| s_score |

+---------+

| 90 |

| 60 |

| 80 |

| 30 |

| 87 |

| 89 |

+---------+

6 rows in set (0.00 sec)

查找中位数

mysql> select avg(c.s_score) from(

-> select a.s_score from score a,score b

-> where a.c_id=b.c_id and a.c_id='02'

-> group by a.s_score

-> having sum(case when a.s_score=b.s_score then 1 else 0 end)

-> >= abs(sum(sign(a.s_score-b.s_score)))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值