Tænk på det som buckets, NTILE(2) vil lave 2 buckets, halvdelen af rækkerne vil have værdien 1 og den anden halvdel værdien 2
eksempel
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
Her er outputtet, da du har et ulige antal rækker, vil spand 1 have 1 række mere
1 S1 75
1 S2 83
1 S4 83
2 S3 91
2 S5 93
Hvis du tilføjer en række mere
insert #temp values('S6',92 )
Nu har begge spande 3 rækker
1 S1 75
1 S2 83
1 S4 83
2 S3 91
2 S6 92
2 S5 93
I virkeligheden har jeg aldrig brugt NTILE i produktionskode, men jeg kan se brugen, hvor du skal opdele resultaterne i n antal spande