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

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:31:53 有488人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

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

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

请先登录

推荐问题


联系我
置顶