即使没有内置函数,你也可以用MySQL中的GROUP BY计算中位数.

考虑一下表:

Acrington 200.00

Acrington 200.00

Acrington 300.00

Acrington 400.00

Bulingdon 200.00

Bulingdon 300.00

Bulingdon 400.00

Bulingdon 500.00

Cardington 100.00

Cardington 149.00

Cardington 151.00

Cardington 300.00

Cardington 300.00

对于每一行,您可以计算较少的类似项目的数量.您还可以计算有多少值小于或等于:

name v < <=

Acrington 200.00 0 2

Acrington 200.00 0 2

Acrington 300.00 2 3

Acrington 400.00 3 4

Bulingdon 200.00 0 1

Bulingdon 300.00 1 2

Bulingdon 400.00 2 3

Bulingdon 500.00 3 4

Cardington 100.00 0 1

Cardington 149.00 1 2

Cardington 151.00 2 3

Cardington 300.00 3 5

Cardington 300.00 3 5

随着查询

SELECT name,v, (SELECT COUNT(1) FROM sale WHERE v

, (SELECT COUNT(1) FROM sale WHERE v<=o.v AND name=o.name) as lse

FROM sale o

当小于或等于计数是项目数量的一半时,将出现中值

> Acrington有4件商品.其中一半是2,其范围为0..2(对应于200.00),也在2..3范围内(对应于300.00)

> Bullingdon也有4件物品. 2在1..2(值300.00)和2..3(值400.00)的范围内

> Cardington有5件衣服.值2.5在2和3之间,对应于Cardington 151.

中值是返回的最小值和最大值的平均值:

SELECT cs.name,v

FROM

(SELECT name,v, (SELECT COUNT(1) FROM sale WHERE v

, (SELECT COUNT(1) FROM sale WHERE v<=o.v AND name=o.name) as lse

FROM sale o) cs JOIN

(SELECT name,COUNT(1)*.5 as cn

FROM sale

GROUP BY name) cc ON cs.name=cc.name

WHERE cn between ls and lse

这使:

Acrington 200.00

Acrington 200.00

Acrington 300.00

Bulingdon 300.00

Bulingdon 400.00

Cardington 151.00

最后我们可以得到中位数:

SELECT name,(MAX(v)+MIN(v))/2 FROM

(SELECT cs.name,v

FROM

(SELECT name,v, (SELECT COUNT(1) FROM sale WHERE v

, (SELECT COUNT(1) FROM sale WHERE v<=o.v AND name=o.name) as lse

FROM sale o) cs JOIN

(SELECT name,COUNT(1)*.5 as cn

FROM sale

GROUP BY name) cc ON cs.name=cc.name

WHERE cn between ls and lse

) AS medians

GROUP BY name

给予

Acrington 250.000000

Bulingdon 350.000000

Cardington 151.000000

mysql median_在MySQL中使用MEDIAN和MAX,MIN和AVG功能相关推荐

  1. php ajax mysql 分页查询_PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)

    1.首先做主页面Ajax_pag.php 代码如下: Ajax做分页 .header{ margin-top: 20px; } 关键字: 地区代号地区名称父级代号 2.然后做分页查询JS页面Ajax_ ...

  2. mysql之count,max,min,sum,avg,celing,floor

    系列文章 mysql之创建数据库,创建数据表 mysql之select,insert,delete,update mysql之group by,order by count 计数,经常和group b ...

  3. MATLAB中求最大/最小值max/min函数

    求矩阵的最大值和最小值 求矩阵A的最大值的函数有3种调用格式,分别是: (1) max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值. (2) [Y,U]=max(A):返回行向量 ...

  4. MySQL基础篇-MySQL 命令大全

    当然是为我的第一位粉丝->怡宝 准备的一篇MySQL咯 要看进阶篇的小伙伴点着哦!!!! MySQL进阶篇 - 索引篇 1.启动MySQL,备份数据: 1.1启动MySQL服务: cmd 命令行 ...

  5. mysql isreg_`Innodb` MySQL中如何优雅的删除大表跑路

    最近很想写写MySQL相关的内容,就从这个话题出发吧 有人说删MySQL表谁不会 不就是 drop table TABLENAME 如果在生产环境中,你对一张TB级别的大表,敲下这行命令 那么你的主管 ...

  6. mysql''和null,mysql中NULL和null的区别

    接触php的web开发一段时间了,在进行数据库操作的时候经常会遇到一个问题,使得同一字段在页面显示时有3种类型NULL,null以及数字,当时的解决办法是将这一字段定义为varchar类型,在插入数据 ...

  7. 小记mysql备份同库中一张表的历史记录

    mysql备份同库中一张表的历史记录 insert into -select 需求 如今有个这么一个需求.mysql中有个表.数据增长的非常快.可是呢这个数据有效期也就是1个月,一个月曾经的记录不太重 ...

  8. mysql算法函数_mysql中的函数总结

    mysql中常用日期时间函数 MySQL服务器中的三种时区设置: ①系统时区---保存在系统变量system_time_zone ②服务器时区---保存在全局系统变量global.time_zone ...

  9. mysql in边界_mysql中 where in 用法详解

    这里分两种情况来介绍 WHERE column IN (value1,value2,...) WHERE column NOT IN (value1,value2,...) 1.in 后面是记录集,如 ...

  10. koa mysql模块_koa 项目中引入 mysql

    由于mysql模块的操作都是异步操作,每次操作的结果都是在回调函数中执行,现在有了async/await,就可以用同步的写法去操作数据库 Promise封装mysql模块 Promise封装 ./as ...

最新文章

  1. Java局部变量final
  2. JavaScript text highlighting JQuery plugin
  3. linux基础-网络基础知识篇
  4. 微软正式发布Windows 10 2020年10月更新
  5. python深入与提高_Python深入01 特殊方法与多范式
  6. python代码读取外部变量_关于python闭包的问题,内部函数可以获取外部函数的变量吗?...
  7. wxWidgets:TextCtrl示例
  8. GIS数据格式整理之Coverage篇
  9. @Controller,@Service,@Repository,@Component详解
  10. spring 多租户_使用Spring Security的多租户应用程序的无状态会话
  11. 红外线遥控c语言程序,红外遥控的C程序
  12. 红橙Darren视频引申 第一次写NDK项目(Android studio 4.1.1)
  13. SpringMVC中@RequestMapping参数设置
  14. [礼仪大赛策划方案]图:如何打造一场精美极致的礼仪大赛?PPT动态柱状图,如何动态显示?Flash如何渲染PPT界面呢?
  15. 阿里云视频点播 和HLS加密解密
  16. python-直接删除整个文件夹
  17. 教师计算机提升工程培训心得,教师信息技术应用能力提升培训心得体会3篇
  18. 【安卓】处理Android Studio中文字体为繁体字
  19. 鸢尾花分类python算法_BP算法鸢尾花分类
  20. android 粗暴简单仿美团/大众点评搜索方式,详细标注

热门文章

  1. go sync.once用法
  2. 数学建模(6)-Matlab绘制图像精细修改
  3. 盘点20条Allegro操作指令,老司机都不一定掌握的技能
  4. Java并发系列之并发编程的挑战
  5. 摄影测量前方交会编程实现
  6. Electron入门——代码压缩与打包exe文件
  7. Android Studio快速开发之道
  8. 计算机提示策略阻止安装,win7安装软件提示此程序被组策略阻止怎么办
  9. android手机内存单位 吉字节,Android8.1 吉字节问题
  10. mandriva csdn_与Google的双重开源Mandriva告别,还有更多新闻