mysql GROUP BY去重 保留id大的那条
时间: 2024-10-15 10:07:56 浏览: 32
Mysql中distinct与group by的去重方面的区别
在MySQL中,如果你想根据某一列进行分组并对结果集进行去重,通常会配合`GROUP BY`子句使用。然而,如果你想要保持每组中的最大ID记录(而不是所有ID),你可以结合`GROUP BY`和`MAX()`函数。这里是一个基本的例子:
```sql
SELECT column_to_group, MAX(id) as max_id
FROM table_name
GROUP BY column_to_group;
```
在这个查询中,`column_to_group`是你想按照哪一列进行分组,而`MAX(id)`会选择每组中`id`的最大值。这样,每个组内就会返回一条记录,这条记录拥有最大的`id`,其他相同的`column_to_group`值的记录会被忽略。
如果你只需要那些最大ID对应的完整记录,可以在上面的基础上添加一个`INNER JOIN`:
```sql
SELECT t1.*
FROM table_name t1
JOIN (
SELECT column_to_group, MAX(id) as max_id
FROM table_name
GROUP BY column_to_group
) t2
ON t1.column_to_group = t2.column_to_group AND t1.id = t2.max_id;
```
这个查询会返回每个`column_to_group`下ID最大的那一行记录。
阅读全文