MySql 求中位数

中位数:如果一组数据的个数是奇数,则中位数就是正中间那个数;如果数据的个数是偶数,则中位数通常是中间两个数的平均值。

中位数(Median)又称中值,是统计学中的一个重要概念。它是指一组数据按照大小顺序排列后,位于中间位置的数。如果一组数据的个数是奇数,则中位数就是正中间那个数;如果数据的个数是偶数,则中位数通常是中间两个数的平均值。中位数不受数据极端值的影响,能够较好地代表数据集的中等水平。在计算中位数时,首先需要对数据进行排序,然后根据数据的个数是奇数还是偶数来确定中位数的具体数值。‌

中位数: 

WITH 这是生成的临时表名 AS (
	SELECT
		这是要计算中位数的字段 AS field,
		ROW_NUMBER() OVER ( ORDER BY CAST( field AS DECIMAL ( 10, 2 )) ASC ) AS rn,
		COUNT(*) OVER () AS total_rows 
	FROM
		这是要计算中位数的表
	WHERE
		这里有查询条件就写查询条件 
	) 
	
	SELECT
	AVG( CASE WHEN rn IN ( FLOOR(( total_rows + 1 ) / 2.0 ), FLOOR(( total_rows + 2 ) / 2.0 )) THEN field END ) AS middleValue 
FROM
	RankedData

WITH  AS是在MySql8.0 及以上版本中出现的,可以将查询结果存储在一个临时表中,在查询语句中可以使用这个结果集。

仅供参考,希望对您有所帮助,感谢阅读。


注:本文章,是从各大网站、各位道友以及老师等处学习,自己总结做的一些笔记,不对的地方望海涵,如有问题,请及时联系。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值