es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo obtener el recuento de inserciones por minuto en SQL?

Tengo una tabla que se ve así

id nombre FechaCreacion
1 prueba1 2014-06-30 09:00:00
1 prueba2 2014-06-30 09:01:10
1 prueba3 2014-06-30 09:01:23
1 prueba4 2014-06-30 09:01:43
1 prueba5 2014-06-30 09:02:02
1 prueba6 2014-06-30 09:02:34
1 prueba7 2014-06-30 09:03:22
1 prueba8 2014-06-30 09:03:28
1 prueba9 2014-06-30 09:04:14
1 prueba10 2014-06-30 09:04:22
1 prueba11 2014-06-30 09:04:28

Quiero obtener el número de inserciones que han ocurrido por minuto, para que la salida se vea así

Inserciones Por Minuto Hora de Inicio Hora de Finalización
1 09:00:00 09:00:00
3 09:01:10 09:01:43
2 09:02:02 09:00:34
2 09:03:22 09:03:28
3 09:04:14 09:04:28

¿Cómo puedo hacer eso?
Este es el código que tengo que me da las inserciones por día, pero no puedo hacer que funcione por minuto

Select Count(FechaCreacion) as InsercionesPorDia, Convert(varchar, FechaCreacion, 101) as FechaCreacion
From MiTabla
Where DATEDIFF(day, FechaCreacion, GETDATE()) < 30
Group By Convert(varchar, FechaCreacion, 101)
Order By InsercionesPorDia DESC

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener el número de inserciones que han ocurrido por minuto, debes agrupar por la parte minuto de la columna CreatedDate. Aquí está el código modificado que debería darte el resultado deseado:

    SELECT COUNT(*) AS InsercionesPorMinuto,
           CONVERT(TIME, DATEADD(MINUTE, DATEDIFF(MINUTE, 0, CreatedDate), 0)) AS HoraInicio,
           CONVERT(TIME, DATEADD(MINUTE, DATEDIFF(MINUTE, 0, CreatedDate) + 1, 0)) AS HoraFin
    FROM MiTabla
    WHERE CreatedDate >= '2014-06-30' AND CreatedDate < '2014-07-01'
    GROUP BY DATEADD(MINUTE, DATEDIFF(MINUTE, 0, CreatedDate), 0)
    ORDER BY HoraInicio
    

    En este código, estamos agrupando por la parte minuto de la columna CreatedDate utilizando las funciones DATEADD y DATEDIFF. También estamos utilizando la función CONVERT para convertir el valor de datetime a un valor de tiempo para mostrar solo la parte de la hora.

    Ten en cuenta que también necesitas especificar el rango de fechas en la cláusula WHERE para limitar los resultados al día deseado.

Comments are closed.