我有以下要求:
代码标记
一个 50
一个 50
乙 60
乙 60
20
20
现在,我想编写一个查询来显示最佳射手的 CODE 和标记。在这个例子中它的 B 和 120。如何在 SQL 中编写它。
最佳答案
标准 SQL
SELECT
Code, MAX(SumMarks)
FROM
(
SELECT
SUM(Marks) as SumMarks, Code
FROM
SomeTable
GROUP BY
Code
) foo
GROUP BY
Code
使用 TOP 或 LIMIT(根据需要取消注释)。对于 SQL Server,这是更可取的(使用 WITH TIES),因为您可能有另一个具有相同最大值的分数总和
SELECT -- TOP 1 -- WITH TIES if you have 2 scores the same
SUM(Marks) as SumMarks, Code
FROM
SomeTable
GROUP BY
Code
ORDER BY
SUM(Marks) DESC
-- LIMIT 1
如果不是你需要的,它至少应该激励你......
关于sql - 我们可以在 SQL 语句中一起使用 SUM 和 Max Function 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7759347/