我有一个类似于以下内容的表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);
这个查询不起作用(它删除了一些行而不是正确的行),但我不明白我做错了什么。如何修复此查询以删除正确的行?
答案 0 :(得分:0)
你有一个拼写错误:“和t2.last_name = t2.last_name”应该是:“和t1.last_name = t2.last_name”