これをバケットと考えてください。NTILE(2)は2つのバケットを作成し、行の半分は値1になり、残りの半分は値2になります
。例
create table #temp(StudentID char(2), Marks int)
insert #temp values('S1',75 )
insert #temp values('S2',83)
insert #temp values('S3',91)
insert #temp values('S4',83)
insert #temp values('S5',93 )
select NTILE(2) over(order by Marks),*
from #temp
order by Marks
これが出力です。行数が不均一であるため、バケット1にはさらに1行あります
1 S1 75
1 S2 83
1 S4 83
2 S3 91
2 S5 93
行をもう1つ追加した場合
insert #temp values('S6',92 )
これで、両方のバケットに3つの行があります
1 S1 75
1 S2 83
1 S4 83
2 S3 91
2 S6 92
2 S5 93
実際には、本番コードでNTILEを使用したことはありませんが、結果をn個のバケットに分割する必要がある場合の使用法を確認できます