oracleクエリー内のいくつかのグループに対してN回の結果を得る方法を教えてください。条件が追加された異なるグループのN個の結果を返します。oracle sql
は、例えば以下の表を参照してください。
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つのチームを獲得したいと考えています。
私はすでに、監査人ごとに3つのチームを返すために次のSQLを使用していますが、実際には理想的ではない同じチームの3つを取得することがあります(ジャック参照)。
select *
from (select ID,
Team,
Auditor,
rank() over (partition by Auditor order by ID) rank
from table)
where rank <= 3;
出力は何ですか? –