Stellen Sie es sich als Buckets vor, NTILE(2) macht 2 Buckets, die Hälfte der Zeilen hat den Wert 1 und die andere Hälfte den Wert 2
Beispiel
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
Hier ist die Ausgabe, da Sie eine ungerade Anzahl von Zeilen haben, hat Bucket 1 eine Zeile mehr
1 S1 75
1 S2 83
1 S4 83
2 S3 91
2 S5 93
Wenn Sie eine weitere Zeile hinzufügen
insert #temp values('S6',92 )
Jetzt haben beide Buckets 3 Reihen
1 S1 75
1 S2 83
1 S4 83
2 S3 91
2 S6 92
2 S5 93
In Wirklichkeit habe ich NTILE nie im Produktionscode verwendet, aber ich kann die Verwendung sehen, bei der Sie die Ergebnisse in eine Anzahl von n-Buckets aufteilen müssen