mysql - 如何按列分组、按不同列排序以及将每个组限制为一行?

标签 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。

最佳答案

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

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

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

关于mysql - 如何按列分组、按不同列排序以及将每个组限制为一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8470245/

相关文章:

c# - Silverlight Web 应用程序 - 现场存储数据

mysql - 前 10 个值的总和

sql - 在 SQL 中选择最近的条目

mysql - Joomla jos_session 表崩溃

mysql - 选择计数(*) 性能

mysql - SQL 查询返回 Sum 和 Count 的错误值

sql - 在 postgresql 中一次运行多个语句

mysql - 如何在不同的外键上自动递增?

mysql - 使用连接从表中获取最新值

php - MySQL - 为特定列中的每个值 y 获取 x 记录