Sql 百分比_秩()后的筛选Postgre查询

Sql 百分比_秩()后的筛选Postgre查询,sql,postgresql,Sql,Postgresql,我正在试图弄清楚如何正确地执行此PostgreSQL查询。 我有一个“points”列,我想在points列上运行percent_排名,然后在计算了percent排名后,使用WHERE子句筛选出低于某个排名的人。默认情况下,where子句出现在percent_秩之前,这很好,因为我确实希望在计算秩之前过滤掉一些内容,但在计算之后过滤得更多 例如: SELECT name,points,PERCENT_RANK() OVER (ORDER BY points) FROM users WHERE

我正在试图弄清楚如何正确地执行此PostgreSQL查询。 我有一个“points”列,我想在points列上运行percent_排名,然后在计算了percent排名后,使用WHERE子句筛选出低于某个排名的人。默认情况下,where子句出现在percent_秩之前,这很好,因为我确实希望在计算秩之前过滤掉一些内容,但在计算之后过滤得更多

例如:

SELECT name,points,PERCENT_RANK() OVER (ORDER BY points) 
FROM users 
WHERE username IS NOT NULL 
AND is_active = TRUE
然后仅按百分比排名>0.10的人或其他过滤器进行筛选。

使用子查询:

SELECT u.*
FROM (SELECT name, points, PERCENT_RANK() OVER (ORDER BY points) as prank
      FROM users 
      WHERE username IS NOT NULL AND is_active
     ) u
WHE$RE prank > 0.10;