文章目录

  • 1 建表并插入数据
  • 2 添加辅助列
    • 2.1 先给表加一个列,列里面是对分数的排序(即标明了位置)
    • 2.2 中位数:当记录是奇数时,中位数中间位置的数;当记录是偶数时,中位数是中间两个数的平均
    • 2.3 四分位数:

1 建表并插入数据

CREATE TABLE `student_t` (`id` varchar(32) NOT NULL,`value` int(11) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;insert into student_t (id,`value`)
values ('A',40),
('B',50),
('C',60),
('D',70),
('E',80),
('F',90);

2 添加辅助列

2.1 先给表加一个列,列里面是对分数的排序(即标明了位置)

SELECTid,@INDEX := @INDEX + 1 AS myindex,`VALUE` -- myindex代表的是这一列数,@index是位置FROMstudent_tINNER JOIN ( SELECT @INDEX := 0 ) AS initvar ON 1 = 1 ORDER BY`VALUE` #最内层

2.2 中位数:当记录是奇数时,中位数中间位置的数;当记录是偶数时,中位数是中间两个数的平均

 SELECTGROUP_CONCAT( id ),avg( `VALUE` )
FROM(#第二层开始SELECTid,@INDEX := @INDEX + 1 AS myindex,`VALUE` -- myindex代表的是这一列数,@index是位置 FROMstudent_tINNER JOIN ( SELECT @INDEX := 0 ) AS initvar ON 1 = 1 ORDER BY`VALUE` #最内层    ) AS t
WHEREmyindex = floor( @INDEX / 2+1 )  OR myindex = ceil( @INDEX / 2 )

2.3 四分位数:

 SELECTGROUP_CONCAT( id ),avg( `VALUE` )
FROM(#第二层开始SELECTid,@INDEX := @INDEX + 1 AS myindex,`VALUE` -- myindex代表的是这一列数,@index是位置 FROMstudent_tINNER JOIN ( SELECT @INDEX := 0 ) AS initvar ON 1 = 1 ORDER BY`VALUE` #最内层    ) AS t
WHEREmyindex = floor(( @INDEX+1) /4 )
 SELECTGROUP_CONCAT( id ),avg( `VALUE` )
FROM(#第二层开始SELECTid,@INDEX := @INDEX + 1 AS myindex,`VALUE` -- myindex代表的是这一列数,@index是位置 FROMstudent_tINNER JOIN ( SELECT @INDEX := 0 ) AS initvar ON 1 = 1 ORDER BY`VALUE` #最内层    ) AS t
WHEREmyindex = floor(3*( @INDEX+1) /4 )

mysql 求中位数、四分位数相关推荐

  1. mysql查询中位数(窗口函数的使用)

    mysql查询中位数(leetcode569的延伸) Create table If Not Exists Employee (Id int, Company varchar(255), Salary ...

  2. mysql 求数据的长度_mysql 如何求数据的长度

    mysql求数据长度的方法:1.使用"LENGTH"函数来获取字符串长度,语法如"SELECT LENGTH('字符')":2.通过"CHAR_LEN ...

  3. 堆实战(动态数据流求top k大元素,动态数据流求中位数)

    动态数据集合中求top k大元素 第1大,第2大 ...第k大 k是这群体里最小的所以要建立个小顶堆 只需要维护一个大小为k的小顶堆 即可当来的元素(newCome)> 堆顶元素(smallTo ...

  4. 算法练习day6——190323(求中位数、堆排序、稳定性)

    1.求中位数 有一个流,不断输出数,然后会不停地询问已输出的那些书的中位数. 解决方法:用一个大根堆,一个小根堆存那些已输出的数. 大根堆中存储较小的N/2个数: 小根堆中存储较大的N/2个数: 这样 ...

  5. 求中位数_图解面试题:如何分析中位数?

    学校每次考试完,都会有一个成绩表.例如,表中第1行表示编号为1的用户选择了C++岗位,该科目考了11001分. 问题:写一个sql语句查询每个岗位的中位数位置的范围,并且按岗位升序排序,结果如下: 解 ...

  6. 给定一个整数序列,求中位数

    问题描述: 给定一个整数序列,求中位数.如果序列个数为奇数,中位数为升序的中间位置,如果是偶数,这位升序的中间两个数的平均值. 输入: 输入包含多组测试数据,每一组第一行为n(n<104)表示这 ...

  7. hive、impala 求中位数

    hive求中位数: (0.5参数可调) select percentile(cast(p as int),0.5) from student2; impala求中位数: select APPX_MED ...

  8. mysql 求平均数 (AVG聚合函数)

    mysql 求平均数 (AVG聚合函数) SELECT ROUND(AVG(score),3) AS 平均分 FROM grade AVG:平均数 聚合函数 ROUND:四舍五入 3:保留三位小数

  9. O(n)的时间复杂度求中位数

    O(n)的时间复杂度求中位数 O(n)中位数问题是指:在O(n)的时间复杂度内找到一个无序序列的中位数. 在开始O(n)时间复杂度求中位数之前,先手写一下快速排序. 快速排序的实现 Reference ...

最新文章

  1. window resize和scroll事件的基本优化
  2. linux系统proc目录进程信息详解
  3. Linux下安装二进制版mysql-8.0.15
  4. undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status
  5. UIKit框架使用总结--看看你掌握了多少
  6. MySQL创建存储过程(CREATE PROCEDURE)
  7. 进化吧!我的C++!!
  8. python中List的sort方法(或者sorted内建函数)的用法
  9. xdu1068暨2013陕西省赛C题题解
  10. Vue的使用技巧是什么,学习难度怎么样?
  11. 阿里、Uber都在用的Flink你了解多少?
  12. 什么是生命,这取决于肝脏。——《调音师》影评
  13. php ci框架开发手册,CodeIgniter 教程 - php CodeIgniter 框架 - CodeIgniter手册
  14. 对主机或 Docker 镜像进行漏洞扫描
  15. 圣经与超级计算机,圣经创世纪里的时间概念和爱因斯坦相对论
  16. 文本特征提取方法研究
  17. 三种局域网扫描工具比较
  18. python声纹识别_【kaldi学习.4】Aishell V1(说话人识别、声纹识别)中的run.sh详解...
  19. 牛客练习赛50 F tokitsukaze and Another Protoss and Zerg(分治NTT)
  20. 高中辍学,三年间做遍各种零工,转行程序员改变人生

热门文章

  1. Java入门及环境搭建idea安装和简单使用
  2. utf8和utf-8
  3. 上海大学2020计算机考研专业,2020上海大学计算机考研大纲
  4. Windows phone 8 JumpStart--Async
  5. 干货满满!财务报表之FineReport年初财务编制预算
  6. 分享灵动微电子低功耗单片机MM32L系列
  7. 可以免费申请https证书的网址
  8. TiDB Lightning 数据源
  9. 大型互联网分层架构图
  10. 【产品经理】大学生学客