我想在这张表上计算percentile_cont。在Oracle中,查询将为
SELECT PERCENTILE_CONT(0.05) FROM sometable;
它在MariaDB/MySQL中的替代方案是什么?
发布于 2019-01-28 17:50:26
虽然MariaDB 10.3.3以窗口函数(see Lukasz Szozda's answer)的形式支持这些函数,但您也可以使用MySQL 8中的窗口函数来模拟它们:
SELECT DISTINCT first_value(matrix_value) OVER (
ORDER BY CASE WHEN p <= 0.05 THEN p END DESC /* NULLS LAST */
) x,
FROM (
SELECT
matrix_value,
percent_rank() OVER (ORDER BY matrix_value) p,
FROM some_table
) t;
发布于 2016-06-15 22:59:14
在MariaDB或MySQL中都没有内置的函数,因此您必须在SQL级别上解决这个问题(或者通过添加一个用C语言编写的用户定义函数……)。
这可能有助于提出SQL解决方案:
http://rpbouman.blogspot.de/2008/07/calculating-nth-percentile-in-mysql.html
https://stackoverflow.com/questions/37804511
复制相似问题