使用 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 的第一名,我在这里做错了什么?