mysql里获取中位数和四分位数的函数是什么?

  算法/数据结构/数据库 sql    浏览次数:2751        分享
0

mysql里获取中位数和四分位数的函数是什么?

 

渣渣飞   2019-09-17 08:05



   2个回答 
4

没有特别简单的方法,假设表的名字叫grades,你想得到grades中其中一列grade的中位数,代码如下

SET @rowindex := -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
g.rowindex IN (FLOOR(@rowindex / 2) , CEIL(@rowindex / 2));
SofaSofa数据科学社区DS面试题库 DS面经

okayguy   2019-09-20 07:58

四分位数的话就把@rowindex/2换成@rowindex/4就可以了 - 何立诚   2019-09-26 11:10
0

可以试试substring_index和group_concat这两个函数

SofaSofa数据科学社区DS面试题库 DS面经

赵大胖   2019-09-20 09:01

substring_index和group_concat应该都是处理string,和中位数没关系吧 - cece   2019-09-23 01:55


  相关主题

SQL里UNION和UNION ALL的区别是什么?   2回答

mysql怎么对每个group只选2行?   1回答

mysql里ORDER BY的默认排序是什么?   2回答

sql里where和having的区别是什么?   1回答

mysql数据库中怎么从一个表里随机抽取k行?   2回答

增量表、全量表分别是什么意思   1回答

hive里的LEFT SEMI JOIN是什么JOIN?   1回答

sql里的table和view有什么区别?   2回答

sql怎么对数据表里的一列中文字符串按照拼音顺序排序?   1回答

sql里cross join有什么作用?   1回答

sql里nullif怎么用?   1回答

mysql里的锁是什么意思?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!