इसे बकेट के रूप में सोचें, 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
अगर आप एक और पंक्ति जोड़ते हैं
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 संख्या में बाल्टियों में विभाजित करने की आवश्यकता है