如何按列分组,按不同列排序,并将每个组限制为一行?

时间:2011-12-12 05:22:54

标签: mysql sql greatest-n-per-group

Name      Score
Jim       1
Jim       2
Jim       4
Lisa      2
Lisa      5
Ted       1
Ted       2
Ted       3

我如何按名称分组,按最高分排序,只挑选一行?因此查询将返回3行Jim 4,Lisa 5和Ted 3。

3 个答案:

答案 0 :(得分:1)

要查找最高分数,您可以GROUP BY命名,并使用MAX功能:

SELECT ns.Name, MAX(ns.Score) AS Score
FROM NameScore AS ns
GROUP BY ns.Name
ORDER BY ns.Name ASC

我编写了表名,因为你没有提供表名,请为你的真实表切换。

答案 1 :(得分:0)

我认为以下内容可行,但我没有对其进行测试:

SELECT Name, MAX(Score) FROM Table
        GROUP BY Name

答案 2 :(得分:0)

我认为这是信任:

select from Table group by Name having MAX(Score);