MySQL/MariaDB中PERCENTIAL_CONT的替代
我要计算此表上的PERCENTIALE_CONT。 在Oracle中,查询将为
SELECT PERCENTILE_CONT(0.05) FROM sometable;
在MariaDB/MySQL中有什么替代方案?
解决方案
虽然MariaDB10.3.3以窗口函数(see Lukasz Szozda's answer)的形式支持这些函数,但是您也可以使用MySQL8中的窗口函数来模拟它们:
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;
I've blogged about this more in detail here。
相关文章