Sql server SQL Server:删除时间相似的记录

Sql server SQL Server:删除时间相似的记录,sql-server,Sql Server,我想删除具有相同或相似时间的记录。以下是示例数据: ID | Name | DateTime ---+------+-------------------- 1 | Joe | 2017-03-01 11:33:13 1 | Joe | 2017-03-01 11:33:14 1 | Joe | 2017-03-01 11:33:15 1 | Joe | 2017-03-01 11:55:30 2 | John | 2017-02-15 08:55:48 2 | John |

我想删除具有相同或相似时间的记录。以下是示例数据:

ID | Name | DateTime
---+------+--------------------
1  | Joe  | 2017-03-01 11:33:13
1  | Joe  | 2017-03-01 11:33:14
1  | Joe  | 2017-03-01 11:33:15
1  | Joe  | 2017-03-01 11:55:30
2  | John | 2017-02-15 08:55:48
2  | John | 2017-02-15 08:55:49
2  | John | 2017-02-15 08:56:30
2  | John | 2017-02-15 10:15:40
删除后:

ID | Name | DateTime
---+------+---------------------
1  | Joe  | 2017-03-01 11:33:13
1  | Joe  | 2017-03-01 11:55:30
2  | John | 2017-02-15 08:55:48
2  | John | 2017-02-15 10:15:40
删除所有类似的时间,例如用户10分钟

请帮我怎么做。谢谢

CREATE TABLE #TABLE1
    ([ID] INT, [NAME] VARCHAR(4), [DATETIME] DATETIME)

INSERT INTO #TABLE1
    ([ID], [NAME], [DATETIME])
VALUES
    (1, 'JOE', '2017-03-01 11:33:13'),
    (1, 'JOE', '2017-03-01 11:33:14'),
    (1, 'JOE', '2017-03-01 11:33:15'),
    (1, 'JOE', '2017-03-01 11:55:30'),
    (2, 'JOHN', '2017-02-15 08:55:48'),
    (2, 'JOHN', '2017-02-15 08:55:49'),
    (2, 'JOHN', '2017-02-15 08:56:30'),
    (2, 'JOHN', '2017-02-15 10:15:40')

SELECT  A.ID,A.NAME,A.[DATETIME] FROM  
(SELECT *,ROW_NUMBER() OVER( PARTITION BY (  CAST(CONVERT(CHAR(16), [DATETIME],113) AS DATETIME)) ORDER BY [NAME]) AS RN FROM #TABLE1
)A
WHERE RN=1 ORDER BY ID 
输出

ID  NAME        DATETIME
1   Joe        2017-03-01 11:33:13.000
1   Joe        2017-03-01 11:55:30.000
2   John       2017-02-15 08:55:48.000
2   John       2017-02-15 10:15:40.000

谢谢,看起来不错。但我有同样的问题。它是如何工作的?我如何设置分钟数?什么是RN?有小误差。您可以尝试以下操作:在日志[ID]、名称、日期时间值中插入1,‘JOE’、‘2017-03-01 11:33:13’、‘JOE’、‘2017-03-01 11:33:14’、‘JOE’、‘2017-03-01 11:55:30’、‘Joh’、‘2017-02-15 08:48’、‘JOHN’、‘2017-02-15 08:55:49’、‘JOHN’、‘2017-02-15 08:56:30’、‘JOHN’等,'2017-02-15 10:15:40',1,'JOE','2017-02-15 08:55:49'Select必须为JOE返回3行,为JohnI编辑的Select返回2行,现在它工作正常:从Select*中选择A.ID、A.Name、A.DateTime、A.RN,按CASTCONVERTCHAR16划分的行数,DateTime,113作为DateTime,从日志A中将ORDER按名称命名为RN,其中RN=1 ORDER BY DateTime删除10分钟是什么意思?例如,删除10:00<时间的所有行