在Oracle中,查找大于一组数字的80%的数字

Rat*_*eek 4 sql oracle oracle10g

假设我在Oracle中有一个包含整数列的表.有很多行; 在数百万的某个地方.我想写一个查询,给我一个大于表中所有数字的80%的整数.解决这个问题的最佳方法是什么?

如果重要,那就是Oracle 10g r1.

Rya*_*nch 8

听起来好像你想要使用PERCENTILE_DISC函数,如果你想要一个实际的值,或者如果你想要一个特定百分位数的内插值,比如PERCENTILE_CONT,比如80%:

SELECT PERCENTILE_DISC(0.8) 
WITHIN GROUP(ORDER BY integer_col ASC) 
FROM some_table
Run Code Online (Sandbox Code Playgroud)

编辑

如果使用PERCENTILE_DISC,它将从数据集返回实际值,因此如果您想要更大的值,则需要将其递增1(对于整数列).