除外 - SQLは、1分以内に重複レコードが見つかる




sqlite 重複 削除 (2)

挿入を防止する

INSERT MyTable (browser, click_type_id, referrer, [datetime])
SELECT
    @browser, @click_type_id, @referrer, @datetime
WHERE
    NOT EXISTS (SELECT *
        FROM
           MyTable M2
        WHERE
           browser = @browser AND click_type_id = @click_type_id AND referrer = @referrer
           AND
           [datetime] < DATEADD(minute, -1, @datetime))

既存のデータを検索するには(小データの精度に頼って、質問ごとに問題を回避するのに役立つかもしれません)

SELECT
   browser, click_type_id, referrer, COUNT(*)
FROM
   MyTable
GROUP BY
    browser, click_type_id, referrer, (CAST [datetime] AS smalldatetime)
HAVING
    COUNT(*) > 1

私はデータベースに記録されているウェブサイトのエントリをチェックしています

列:browser、click_type_id、referrer、およびdatetime

複数の行に同じブラウザ、click_type_id、およびreferrerがあり、タイムスタンプが付けられている場合(1分以内に発生)、重複と見なされます。

上記の基準に基づいてこれらの重複を照会できるSQLステートメントが必要です。

どんな助けもありがとうございます。


SELECT
     T1.browser,
     T1.click_type,
     T1.referrer,
     T1.datetime,
     T2.datetime
FROM
     My_Table T1
INNER JOIN My_Table T2 ON
     T2.browser = T1.browser AND
     T2.click_type = T1.click_type AND
     T2.referrrer = T1.referrer AND
     T2.datetime > T1.datetime AND
     T2.datetime <= DATEADD(mi, 1, T1.datetime)




records