SQL输出给定每个项的不同最大秩的项的秩

SQL输出给定每个项的不同最大秩的项的秩,sql,oracle,rank,partition,Sql,Oracle,Rank,Partition,以下是我正在寻找的标准 1按区域排列数据 2包括两个地区的前3名和其他地区的前5名 我可以使用以下查询获取条件1: select rank() over (partition by region order by sales_score desc) rank_by_region, region, sales_person sales_score from sales_owner.data 如果我得到三个区域,北,南,西。我将如何排序输出将包括北部和南部

以下是我正在寻找的标准 1按区域排列数据 2包括两个地区的前3名和其他地区的前5名

我可以使用以下查询获取条件1:

select rank() over (partition by region order by sales_score desc) rank_by_region,
       region,
       sales_person
       sales_score
from sales_owner.data
如果我得到三个区域,北,南,西。我将如何排序输出将包括北部和南部的前3名和西部的前5名

非常感谢您的帮助

使用带有或的where条件

与或一起使用where条件


此解决方案是100%正确的。如果将其写成按区域排列的位置,则效率可能会更高。此解决方案是100%正确的。如果将其写成按区域排列的位置,可能会更有效一些
select region,sales_person,sales_score from
(
select rank() over (partition by region order by sales_score desc) rank_by_region,
       region,
       sales_person
       sales_score
from sales_owner.data
) t
where (region in ('North','South') and rank_by_region <= 3)
or (region = 'West' and rank_by_region <= 5)