您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Postgresql:如何从每个组/类别中选择前 n 个百分比(%)条目

Postgresql:如何从每个组/类别中选择前 n 个百分比(%)条目

要根据每组中的行数百分比检索行,您可以使用两种窗口函数:一种用于计算行数,另一种为它们提供唯一编号。

select gp,
       val
from (
  select gp, 
         val,
         count(*) over (partition by gp) as cnt,
         row_number() over (partition by gp order by val desc) as rn
  from temp
) t
where rn / cnt <= 0.75;

sqlfiddle 示例:http ://sqlfiddle.com/#!15/94fdd/1

顺便说一句:使用char几乎总是一个坏主意,因为它是一种填充到定义长度的固定长度数据类型。我希望您这样做只是为了设置示例,不要在您的真实表格中使用它。

SQLServer 2022/1/1 18:53:22 有538人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶