2KB项目,专业的源码交易网站 帮助 收藏 每日签到

怎么运用容易的 SQL 查询在 MySQL 入彀算中位数

  • 时间:2019-09-11 17:24 编辑:2KB 来源:2KB.COM 阅读:395
  • 扫一扫,手机访问
  • 分享
摘要:英文原文:How to calculate median value in MySQL using a *** SQL query                         甚么是中位数? 数值型数组的中位数是在数据排序后位于数组两

英文原文:How to calculate median value in MySQL using a *** SQL query                        

甚么是中位数?

数值型数组的中位数是在数据排序后位于数组两头项的值。假如数组有偶数个元素,中位数就是最两头的两个数值的均匀数。

中位数关于了解“我的值能否位于两头?”十分有效。比方,我在黉舍的最初一次测验中得了 D (或 80),那末我的在全班同窗中的排名能否在前 50%?

举一个详细的例子,我们看看从黉舍的这些测试分数中找到中位数的进程:[55, 80, 95, 100, 99, 70, 60]。

  1. 起首,对数组排序:[55, 80, 95, 100, 99, 70, 60]  ===> [55, 60, 70, 80, 95, 99, 100].

  2. 这个数组包括 7 个元素,不是偶数,所以中位数是 (7 / 2 + 1),即第 4 项的值 => 80。

在 MySQL 入彀算某列数据的中位数

很不幸,MySQL 并未内置盘算列数据中位数的函数。因而,我们需求本人创立查询。

假设我们想从“grades”列中查找中位数。来看看我们要创立的查询是甚么算法:

  1. 对“grades”排序并为排序后的每行附加序号(行号)

  2. 假如总行数是奇数,找到位于有序列表两头地位的值。

  3. 假如总行数是偶数,找到位于有序列表两头两个地位的值。

  4. 盘算上面第 (3) 步和第 (4) 获得值的均匀值。

  5. 前往这个均匀值,它就是中位数。

那末如许的查询该怎样写?

SET @rownum := -1;
 
SELECT
   AVG(g.grade)
FROM
   (SELECT @rowindex:=@rowindex + 1 AS rowindex,
           grades.grade AS grade
    FROM grades
    ORDER BY grades.grade) AS g
WHERE
t.rowindex IN (FLOOR(@rowindex / 2) , CEIL(@rowindex / 2));

说明一下:

  1. 先从外部的一个子查询开端 —— 为 @rowindex 赋值的子查询会为每一个成果付与一个自增后的序号,并对 grades 排序 [译者注:按逻辑和代码是先排序再付与序号]。

  2. 有了排好序的成果列表以后,外层查询会获得位两头地位的值。假如数组元素是奇数个,两个值都是取的位于正中阿谁值。

  3. 然后,外层查询的 SELECT 子句前往上述两个值的均匀值作为中位数。

你看,这并非容易的运转 MEDIAN(column_name),但它可行。我们等待 MySQL 会决议将这一功用添加到内置产物中,这将简化获得中位数的查询。

本文中的一切译文仅用于进修和交换目标,转载请务必注明文章译者、出处、和本文链接。                        2KB翻译任务按照 CC 协定,假如我们的任务有进犯到您的权益,请实时联络我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品在家创业在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖网站交易广告买卖站长培训建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部