重複レコードの日付の差が96時間以上または4日以上ある場合は重複レコードを取り消す必要があります。最初のエントリまたは最も古い日付。日付差が4日または96時間以上の場合に重複行を返す方法
ID SDATE
----------- -----------------------
1 2016-04-13 14:54:18.983
1 2016-04-08 12:55:47.907
2 2016-04-13 14:54:18.983
3 2016-04-13 14:54:18.983
4 2016-04-13 14:54:18.983
5 2016-04-13 14:54:18.983
5 2016-04-11 12:55:47.907
6 2016-04-13 14:54:18.983
6 2016-04-13 14:54:18.983
期待される結果:私のテーブルは次のようになり
ID SDATE
----------- -----------------------
1 2016-04-13 14:54:18.983
1 2016-04-08 12:55:47.907
2 2016-04-13 14:54:18.983
3 2016-04-13 14:54:18.983
4 2016-04-13 14:54:18.983
5 2016-04-11 12:55:47.907
6 2016-04-13 14:54:18.983
私は次のクエリを試してみましたが、それは動作しません。
WITH tt AS (
SELECT 1 as ID, GETDATE() as SDATE
UNION ALL
SELECT 1 as ID, '2016-04-09 12:55:47.907' as SDATE
UNION ALL
SELECT 2 as ID, GETDATE() as SDATE
UNION ALL
SELECT 3 as ID, GETDATE() as SDATE
UNION ALL
SELECT 4 as ID, GETDATE() as SDATE
UNION ALL
SELECT 5 as ID, GETDATE() as SDATE
UNION ALL
SELECT 5 as ID, '2016-04-11 12:55:47.907' as SDATE
UNION ALL
SELECT 6 as ID, GETDATE() as SDATE
UNION ALL
SELECT 6 as ID, GETDATE() as SDATE
)
SELECT MIN(SDATE) as SDATE, ID FROM tt as tbl
GROUP BY ID, DATEADD(HH, DATEDIFF(HH,0,SDATE) + 96,0)
あなたが(HHまたはDAY)の期間を変更することができ、列を無視しますか? '{'2016-04-01 06:00:00.000'、 '2016-04-03 18:00:00.000'、 '2016-04-06 06:00:00.000'}'?各レコードの間隔は4日未満ですが、最初と最後のレコードは5日間隔です。 – MatBailie
IDが3つ、最初の日付が「1/4/2016」、第2の日付が「3/4/2016」、第3の日付が「6/4/2016」の場合、 1番目と3番目のものは2番目の複製です。どちらを削除する必要がありますか? – sagi
@MatBailie Hah、同じ質問、同じ日付。 – sagi