mysql 求中位数、四分位数
文章目录
- 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 求中位数、四分位数相关推荐
- mysql查询中位数(窗口函数的使用)
mysql查询中位数(leetcode569的延伸) Create table If Not Exists Employee (Id int, Company varchar(255), Salary ...
- mysql 求数据的长度_mysql 如何求数据的长度
mysql求数据长度的方法:1.使用"LENGTH"函数来获取字符串长度,语法如"SELECT LENGTH('字符')":2.通过"CHAR_LEN ...
- 堆实战(动态数据流求top k大元素,动态数据流求中位数)
动态数据集合中求top k大元素 第1大,第2大 ...第k大 k是这群体里最小的所以要建立个小顶堆 只需要维护一个大小为k的小顶堆 即可当来的元素(newCome)> 堆顶元素(smallTo ...
- 算法练习day6——190323(求中位数、堆排序、稳定性)
1.求中位数 有一个流,不断输出数,然后会不停地询问已输出的那些书的中位数. 解决方法:用一个大根堆,一个小根堆存那些已输出的数. 大根堆中存储较小的N/2个数: 小根堆中存储较大的N/2个数: 这样 ...
- 求中位数_图解面试题:如何分析中位数?
学校每次考试完,都会有一个成绩表.例如,表中第1行表示编号为1的用户选择了C++岗位,该科目考了11001分. 问题:写一个sql语句查询每个岗位的中位数位置的范围,并且按岗位升序排序,结果如下: 解 ...
- 给定一个整数序列,求中位数
问题描述: 给定一个整数序列,求中位数.如果序列个数为奇数,中位数为升序的中间位置,如果是偶数,这位升序的中间两个数的平均值. 输入: 输入包含多组测试数据,每一组第一行为n(n<104)表示这 ...
- hive、impala 求中位数
hive求中位数: (0.5参数可调) select percentile(cast(p as int),0.5) from student2; impala求中位数: select APPX_MED ...
- mysql 求平均数 (AVG聚合函数)
mysql 求平均数 (AVG聚合函数) SELECT ROUND(AVG(score),3) AS 平均分 FROM grade AVG:平均数 聚合函数 ROUND:四舍五入 3:保留三位小数
- O(n)的时间复杂度求中位数
O(n)的时间复杂度求中位数 O(n)中位数问题是指:在O(n)的时间复杂度内找到一个无序序列的中位数. 在开始O(n)时间复杂度求中位数之前,先手写一下快速排序. 快速排序的实现 Reference ...
最新文章
- window resize和scroll事件的基本优化
- linux系统proc目录进程信息详解
- Linux下安装二进制版mysql-8.0.15
- undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status
- UIKit框架使用总结--看看你掌握了多少
- MySQL创建存储过程(CREATE PROCEDURE)
- 进化吧!我的C++!!
- python中List的sort方法(或者sorted内建函数)的用法
- xdu1068暨2013陕西省赛C题题解
- Vue的使用技巧是什么,学习难度怎么样?
- 阿里、Uber都在用的Flink你了解多少?
- 什么是生命,这取决于肝脏。——《调音师》影评
- php ci框架开发手册,CodeIgniter 教程 - php CodeIgniter 框架 - CodeIgniter手册
- 对主机或 Docker 镜像进行漏洞扫描
- 圣经与超级计算机,圣经创世纪里的时间概念和爱因斯坦相对论
- 文本特征提取方法研究
- 三种局域网扫描工具比较
- python声纹识别_【kaldi学习.4】Aishell V1(说话人识别、声纹识别)中的run.sh详解...
- 牛客练习赛50 F 	tokitsukaze and Another Protoss and Zerg(分治NTT)
- 高中辍学,三年间做遍各种零工,转行程序员改变人生