Oracleクエリで複数のグループの結果をN個にするにはどうすればよいですか。
例については、次の表を参照してください。
ID Team Auditor
1 Tm1 Jill
2 Tm2 Jill
3 Tm1 Jill
4 Tm2 Jack
5 Tm2 Jack
6 Tm2 Jack
7 Tm3 Sam
8 Tm1 Sam
9 Tm5 Sam
より多くの監査人とチームがいるより多くの行があります。可能な場合は、監査人ごとに3つのチームを作成し、3つの異なるチームを作成したいと思います。
私はすでに次のSQL(このクエリに応答して投稿された各グループの上位の結果を取得(Oracle))を使用して、監査人ごとに3つのチームを返していますが、同じチームの3つを取得することもあります。これは実際には理想的ではありません(を参照)。ジャック)。
select *
from (select ID,
Team,
Auditor,
rank() over ( partition by Auditor order by ID) rank
from table)
where rank <= 3;