10 sql
我有一个包含一些行的表.每行都有一个日期字段.现在,它可能是日期的重复.我需要删除所有重复项,只存储最高的行id
.如何使用SQL查询?
现在:
date id
'07/07' 1
'07/07' 2
'07/07' 3
'07/05' 4
'07/05' 5
Run Code Online (Sandbox Code Playgroud)
我想要的是:
date id
'07/07' 3
'07/05' 5
Run Code Online (Sandbox Code Playgroud)
Geo*_*lly 33
DELETE FROM table WHERE id NOT IN
(SELECT MAX(id) FROM table GROUP BY date);
Run Code Online (Sandbox Code Playgroud)
我没有评论权,所以这是我的评论作为答案,以防任何人遇到同样的问题:
在SQLite3中,有一个名为"rowid"的隐式数字主键,因此相同的查询将如下所示:
DELETE FROM table WHERE rowid NOT IN
(SELECT MAX(rowid) FROM table GROUP BY date);
Run Code Online (Sandbox Code Playgroud)
这将适用于任何表,即使它不包含名为"id"的主键列.