SQL:cte带回每个类别的最高结果

时间:2013-08-29 11:56:58

标签: sql sql-server-2008 greatest-n-per-group

使用SQl server 2008。

;WITH cte AS
(
   SELECT *,
     ROW_NUMBER() OVER (PARTITION BY refId ORDER BY refid DESC) AS rn
   FROM Products
)
SELECT ProductCategories.Id, 
ProductCategories.Title, 
ProductCategories.languageId, 
ProductCategories.RefId, 
Url
FROM 
 cte
RIGHT JOIN
 RoundupAcademy.dbo.ProductCategories
ON 
 dbo.ProductCategories.RefID = cte.CategoryId
WHERE rn = 1

此查询应该带回每个类别的最高结果 相反,它只是带回所有结果。

我只需要基于refid的最高版本,我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

对于那些想知道的人,查询没问题,除了分区的引用是错误的,它应该是categoryId而不是refID。