如何使用MAX函数从表中删除重复记录

时间:2016-11-29 23:24:26

标签: sql oracle

我有一个类似于以下内容的表t1:

first_name  last_name   row_number
Bob         Smith       1
Mike        Jones       2
Mike        Jones       3
Jessie      Lee         4
Bob         Smith       5
Jessie      Lee         6

我希望从表中删除行,以便每个名称只列出一次,并附带其MAX行号。

因此我希望我的查询输出为:

first_name  last_name   row_number
Mike        Jones       3
Bob         Smith       5
Jessie      Lee         6

我提出的查询是:

DELETE FROM table t1
WHERE t1.row_number !=
(SELECT MAX(row_number) FROM table t2
WHERE t1.first_name = t2.first_name and t2.last_name = t2.last_name);

这个查询不起作用(它删除了一些行而不是正确的行),但我不明白我做错了什么。如何修复此查询以删除正确的行?

1 个答案:

答案 0 :(得分:0)

你有一个拼写错误:“和t2.last_name = t2.last_name”应该是:“和t1.last_name = t2.last_name”

相关问题