solo repetidos registros numerar mostrar evitar eliminar duplicados dejando contar campos buscar agrupar sql duplicate-data records

mostrar - numerar registros repetidos sql



SQL encuentra registros duplicados que ocurren dentro de 1 minuto el uno del otro (2)

Estoy revisando las entradas al sitio web que están registradas en una base de datos

columnas: navegador, click_type_id, referrer y datetime

Si varias filas tienen el mismo navegador, click_type_id y referrer y tienen una marca de tiempo (se producen dentro de 1 minuto el uno del otro) se consideran duplicadas.

Necesito una declaración sql que pueda consultar estos duplicados según los criterios anteriores.

Cualquier ayuda es apreciada.


Para evitar inserciones

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))

Para encontrar en los datos existentes (se basa en la precisión de fecha pequeña y puede ayudar a evitar problemas según el comentario a la pregunta)

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


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)