mysql-求中位数方法

mysql中并没有直接求中位数的函数,经过一番查找之后,找到了如下方法:

SELECT 
((SUBSTRING_INDEX(SUBSTRING_INDEX(group_concat(URINEIODINE order by URINEIODINE), ',', floor(1+((count(URINEIODINE)-1) / 2))), ',', -1))
+
(SUBSTRING_INDEX(SUBSTRING_INDEX(group_concat(URINEIODINE order by URINEIODINE), ',', ceiling(1+((count(URINEIODINE)-1) / 2))), ',', -1)))/2
as median
FROM bs_lowiodinergn_chld_con_srvy t 

但是此方法并不是函数,使用起来有诸多限制。

SELECT ((SUBSTRING_INDEX(SUBSTRING_INDEX(group_concat(URINEIODINE order by URINEIODINE), ',', floor(1+((count(URINEIODINE)-1) / 2))), ',', -1))+(SUBSTRING_INDEX(SUBSTRING_INDEX(group_concat(URINEIODINE order by URINEIODINE), ',', ceiling(1+((count(URINEIODINE)-1) / 2))), ',', -1)))/2as medianFROM bs_lowiodinergn_chld_con_srvy t 

posted on 2016-03-18 18:10  braveliu  阅读(4081)  评论(1编辑  收藏  举报

qzone: welcome to my qzone github:welcome to my github mail:contact me with gmail