我使用SQL Server 2012的NTILE函數在SQL Server中,意外的輸出
查詢是:
create table #t (id int)
insert into #t values(1), (2), (3), (4), (5)
select id, ntile(2) over (order by id desc)
from #t
結果:
id (No column name) (Expected was)
-------------------------------------
5 1 1
4 1 1
3 1 2
2 2 2
1 2 3
我期待在SQL中的3列結果服務器,爲什麼它的行爲不同?
Ntile(2)
應該給每個2號碼?
'NTILE(2)'將您的結果集到*** *** 2組數據(因爲*** ***要求它!)試圖使他們儘可能大。如果您想要** 3 **組 - 請使用'NTILE(3)':... [有關'NTILE'的詳細信息,請參閱MSDN文檔](https://msdn.microsoft.com/en-us/library /ms175126.aspx)。 'NTILE(2)'將結果集分成** 2組數據** - 不是每組2行(如你所期望的) –