我正在使用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