2010-07-27 57 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

相关问题