MySQL 按a列分组,然后按b列排序,取a相同b最大的一笔
时间: 2023-07-28 08:30:51 浏览: 102
数组排序后拿出最大的几个数,并且取它们的下标,包括数组元素相同的情况
4星 · 用户满意度95%
你可以使用以下 SQL 语句来实现按 `a` 列分组,然后按 `b` 列排序,取 `a` 相同的 `b` 最大的一条记录:
```
SELECT t1.*
FROM table_name t1
INNER JOIN
(
SELECT a, MAX(b) AS max_b
FROM table_name
GROUP BY a
) t2
ON t1.a = t2.a AND t1.b = t2.max_b
```
其中,`table_name` 是你要查询的表名,`a` 和 `b` 是你要分组和排序的列名。首先,内部查询按 `a` 分组,并找出每组中 `b` 的最大值。然后,外部查询将这些最大值和原始表连接起来,找出符合条件的记录。
需要注意的是,如果有多条记录的 `a` 相同且 `b` 值相同,那么这些记录都会被返回。如果你只想返回一条记录,可以在外部查询中使用 `GROUP BY t1.a` 来对结果进行分组。
阅读全文