¿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
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:
En este código, estamos agrupando por la parte minuto de la columna CreatedDate utilizando las funciones
DATEADD
yDATEDIFF
. También estamos utilizando la funciónCONVERT
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.