Sql 如何删除日期过近的记录?

Sql 如何删除日期过近的记录?,sql,amazon-redshift,sql-delete,Sql,Amazon Redshift,Sql Delete,我有一个红移表,我想删除时间戳太近的记录 对于下表,我想删除第3行和第4行,因为日期接近第1行,其他字段相同 col1 | col2 | col3 -------------------------- 1 02:23 4 51 02:23 29 1 02:22 4 1 02:24 4 1 19:57 4 嗯。您可以使用铅: 多近才算太近?如果两行

我有一个红移表,我想删除时间戳太近的记录

对于下表,我想删除第3行和第4行,因为日期接近第1行,其他字段相同

 col1  |   col2   |  col3
--------------------------
  1       02:23       4
  51      02:23      29
  1       02:22       4
  1       02:24       4
  1       19:57       4
嗯。您可以使用铅:


多近才算太近?如果两行太近,应该保留哪一行?太近是+-5分钟。我不在乎保留哪一条记录,但不是全部删除
select t.*
from (select t.*,
             lead(col2) over (partition by col1, col3 over order by col2) as next_col2
      from t
     ) t
where next_col2 is null or
      next_col2 < col2 + interval '1 hour'. -- or whatever your cutoff is