我有一个包含一些重复数据的表,我想根据存储在时间列中的值从中删除特定条目。
在我的表中,ID:504289有3个条目:
Date Time Place ID
20161128 2016-11-30 12:54 East 504289
20161128 2016-11-30 12:55 East 504289
20161128 2016-11-30 13:10 East 504289
我想只删除其与之前条目之间的时间间隔相差15分钟或更短的条目。
应用于上表,只会删除12:55记录,因为1254是第一条记录,13:10大于15分钟。
任何人都可以帮忙弄清楚查询吗?
答案 0 :(得分:2)
使用标准SQL,您可以删除距离另一条记录15分钟内的记录。假设您的time
列是您正在使用的数据库的某种日期/时间类型,则SQL看起来像这样:
delete from t
where exists (select 1
from t t2
where t2.date = t.date and
t2.time < t.time and
t2.time > t.time - interval '15 minute'
);
日期/时间算术在数据库之间差异很大。以上是提供查询形状的一般形式。