要基于每个组中行数的百分比来检索行,可以使用两个窗口函数:一个对行进行计数,另一个对行赋予唯一编号。
select gp, valfrom ( select gp, val, count(*) over (partition by gp) as cnt, row_number() over (partition by gp order by val desc) as rn from temp) twhere rn / cnt <= 0.75;
SQLFiddle示例:http
://sqlfiddle.com/#!15/94fdd/1
顺便说一句:使用
char几乎总是一个坏主意,因为它是固定长度的数据类型,被填充为定义的长度。我希望您只是为了设置示例而已,不要在实际表中使用它。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)