Sql 根据条件删除特定的重复数据

Sql 根据条件删除特定的重复数据,sql,sql-server,Sql,Sql Server,我有一个表,其中包含一些重复的数据,我想根据时间列中存储的值删除其中的特定条目 在我的表格中,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 我只想删除与以前条目之间的时间间隔相

我有一个表,其中包含一些重复的数据,我想根据时间列中存储的值删除其中的特定条目

在我的表格中,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分钟


有人能帮您解决这个问题吗?

使用标准SQL,您可以删除一条记录,而该记录与另一条记录的距离不超过15分钟。假设您的时间列是所使用数据库的某种日期/时间类型,则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'
                 );

不同数据库的日期/时间算法差异很大。以上是给出查询形状的通用表格。

请用您正在使用的数据库标记您的问题。此外,时间列的数据类型是什么。时间列是varcharImagine,一个表有30行,时间戳彼此间隔一分钟。从12点到12点29分。如果我正确理解了您的查询,它将删除29行-除最后一行之外的所有行。这看起来不像OP想要的。首先,他想保留第一排,而不是最后一排。