我正在使用SQL Server数据库。通过返回太多行限制最大值和组
鉴于以下查询,我试图获得每个班级的最高分数。 Scores
表有两行50行,所以我总共需要2行。但是,因为我有Scores.Id
,所以它返回Scores
的每一行,因为Scores.Id
是唯一的。当然,简单的解决方案是删除Scores.Id
列,但我需要知道Scores.Id
进行其他查找。
SELECT
Class_Id, Scores.Id, MAX(Scores.ClassScore) AS Score
FROM
Classes
INNER JOIN
Scores ON Classes.Id = Scores.Class_Id
GROUP BY
Scores.Class_Id, Scores.Id
其他的答案都是有效的。有趣的是(对于非常少量的测试数据),我的查询给出了最新的查询计划,但RANK函数提供了最快的查询(添加索引之后)。 – Phil