mysql获取中位数函数_用MySQL计算中位数的简单方法

在MySQL中计算中位数的简单方法是通过使用变量和子查询。首先,对数据进行排序,然后利用变量跟踪行号。如果总行数为奇数,选取中间行的值;若为偶数,则取中间两行的平均值。示例数据和查询展示了如何在单个MySQL查询中找到中位数。
摘要由CSDN通过智能技术生成

bd96500e110b49cbb3cd949968f18be7.png

What's the simplest (and hopefully not too slow) way to calculate the median with MySQL? I've used AVG(x) for finding the mean, but I'm having a hard time finding a simple way of calculating the median. For now, I'm returning all the rows to PHP, doing a sort, and then picking the middle row, but surely there must be some simple way of doing it in a single MySQL query.

Example data:

id | val

--------

1 4

2 7

3 2

4 2

5 9

6 8

7 3

Sorting on val gives 2 2 3 4 7 8 9, so the median should be 4, versus SELECT AVG(val) which == 5.

解决方案

In MariaDB / MySQL:

SELECT AVG(dd.val) as median_val

FROM (

SELECT d.val, @rownum:=@rownum

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值