Usuario
Buscar fechas cercanas en una misma tabla

Pregunta
-
Hola, espero me puedan ayudar.
Tengo una tabla con registros datetime y rut, el tema que necesito es encontrar los datetime que tengan una diferencia maxima de 5 minutos para un mismo rut.
tabla de ejemplo
FECHA | RUT
2019-06-24 08:01:00 | 11111111-1
2019-06-24 17:01:00 | 11111111-1
2019-06-24 17:03:00 | 11111111-1
2019-06-25 08:01:00 | 11111111-1
2019-06-25 17:01:00 | 11111111-1
2019-06-26 08:01:00 | 11111111-1
2019-06-26 08:06:00 | 11111111-1
2019-06-26 17:01:00 | 11111111-1Espero me puedan ayudar ya que no he dado con la respuesta.
Gracias!
Todas las respuestas
-
Deleted
- Propuesto como respuesta Pablo RubioModerator jueves, 4 de julio de 2019 15:27
-
Hola José:
Creo que no va a funcionar, el código propuesto, dado que lead no te correrá en el where.
CREATE TABLE FechasRut (Fecha DATETIME, rut VARCHAR(10) ); GO insert into FechasRut (fecha, rut) values ('20190624 08:01:00','11111111-1'), ('20190624 17:01:00','11111111-1'), ('20190624 17:03:00','11111111-1'), ('20190625 08:01:00','11111111-1'), ('20190625 17:01:00','11111111-1'), ('20190626 08:01:00','11111111-1'), ('20190626 08:06:00','11111111-1'), ('20190626 17:01:00','11111111-1'); Go SELECT RUT, FECHA, lead (FECHA) over (partition by RUT order by FECHA) as [FECHA 2] from FechasRut where FECHA >= dateadd (minute, -5, lead (FECHA) over (partition by RUT order by FECHA));
Mens. 4108, Nivel 15, Estado 1, Línea 20
Las funciones de división de particiones solo pueden aparecer en las cláusulas SELECT u ORDER BY.Como estoy seguro de que lo has escrito al vuelo, te pongo una solución sin alterar en nada lo que creo, estabas intentando plasmar.
-- OPCION 1 SELECT d.RUT, d.FECHA FROM ( SELECT RUT, FECHA, LEAD(FECHA) OVER(PARTITION BY RUT ORDER BY FECHA) AS [FECHA 2] FROM FechasRut ) AS d WHERE FECHA >= DATEADD(minute, -5, [FECHA 2]);
Un saludo
- Propuesto como respuesta Pablo RubioModerator jueves, 4 de julio de 2019 15:27
-
Deleted
- Propuesto como respuesta Pablo RubioModerator jueves, 4 de julio de 2019 15:27