sql - 如何使用 SQL 删除重复的行?

标签 sql

我有一个包含一些行的表。每一行都有一个日期字段。现在,它可能是日期的重复项。我需要删除所有重复项,只存储最高 id 的行.这怎么可能使用 SQL 查询?

现在:

date      id
'07/07'   1
'07/07'   2
'07/07'   3
'07/05'   4
'07/05'   5

我想要的是:
date      id
'07/07'   3
'07/05'   5

最佳答案

DELETE FROM table WHERE id NOT IN
    (SELECT MAX(id) FROM table GROUP BY date);

关于sql - 如何使用 SQL 删除重复的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1173963/

相关文章:

php - mysql 从 3 个表中选择,其中 2 个可能为空

mysql - 用于在表中搜索字符串的 SQL 查询?

SQL简单查询问题

mysql - mongoDB vs mySQL——为什么在某些方面比另一个更好

sql - 以 block 的形式移动大量数据

mysql - MySQL 中的 CREATE TABLE 语法错误

javascript - knex.js INNER JOIN 的结果不同

sql - 如果使用 where 子句时数据为空,则将数据计为零

sql - 拆分名字和姓氏,但仅在第一个空格上

sql - 从 SQL Server 表中的 varchar 列获取子字符串