2010-07-27 43 views
1

這是我的表中的數據: -Rank()爲什麼不能按照它的方式工作?

Insert Into tblProduct (ProductId,ProductName,Description,Category) Values (1,'Cinthol','cosmetic soap','soap'); 
Insert Into tblProduct (ProductId,ProductName,Description,Category) Values (1,'Cinthol','cosmetic soap','soap'); 
Insert Into tblProduct (ProductId,ProductName,Description,Category) Values (1,'Cinthol','cosmetic soap','soap'); 
Insert Into tblProduct (ProductId,ProductName,Description,Category) Values (1,'Lux','cosmetic soap','soap'); 
Insert Into tblProduct (ProductId,ProductName,Description,Category) Values (1,'Crowning Glory','cosmetic soap','soap'); 
Insert Into tblProduct (ProductId,ProductName,Description,Category) Values (2,'Cinthol','nice soap','soap'); 
Insert Into tblProduct (ProductId,ProductName,Description,Category) Values (3,'Lux','nice soap','soap'); 
Insert Into tblProduct (ProductId,ProductName,Description,Category) Values (3,'Lux','nice soap','soap'); 

當我發出這個查詢: -

Select ProductId, 
     ProductName, 
     Description, 
     Category, 
     RANK() Over (partition by ProductId Order By ProductId) As Rank 
From tblProduct; 

所有我能看到的是1st等級每排。其他所有行列在哪裏?行與productid 2應該有排名6,因爲我不使用DENSE_RANK()。爲什麼查詢不起作用?

回答

3

您正在通過ProductId進行分區 - 這意味着每個「分區」將從1開始RANKing。嘗試刪除PARTITION BY ProductId

+0

+1正好 - 好抓! – 2010-07-27 17:03:21

+0

爲什麼,謝謝! :) – 2010-07-27 22:31:49

相關問題