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.

Consulta de MySQL para encontrar la hora del día en que el número de visitas a la sociedad de viviendas es el más alto.

Datos de Visitas a la Sociedad de Vivienda

Id Contacto Hora de entrada Hora de salida Duración de la visita
1 8080808080 26/07/2021 08:00:05 26/07/2021 08:23:06 181
2 9692596925 26/07/2021 08:12:49 26/07/2021 08:14:44 115
3 7099270992 26/07/2021 11:02:49 26/07/2021 11:14:44 715
4 8900289002 26/07/2021 16:12:49 26/07/2021 16:14:44 115
5 9089590895 26/07/2021 15:12:49 26/07/2021 15:14:44 115
6 8765087650 26/07/2021 19:12:49 26/07/2021 19:14:44 115
7 7862178621 26/07/2021 18:12:49 26/07/2021 18:14:44 115

Los datos de visita están disponibles durante muchos años y pueden contener millones de filas, por lo que la solución debe tener una baja complejidad temporal.

Salida esperada: 8-9 AM (ya que se realiza el mayor número de visitas (2) durante esa hora).

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para determinar el intervalo de tiempo con el mayor número de visitas, primero podemos extraer la hora de la columna “Entry_time” y agrupar los datos por hora. Luego, podemos contar el número de visitas en cada hora y devolver la hora con el recuento más alto.

    Suponiendo que la fecha y la hora se almacenan como el tipo de datos DATETIME, podemos utilizar la función HOUR() en MySQL para extraer la hora del valor de fecha y hora. Aquí está la consulta SQL para obtener el resultado esperado:

    SELECT CONCAT(HOUR(Entry_time), '-', HOUR(Entry_time)+1, ' ', 
           IF(HOUR(Entry_time)<12, 'AM', 'PM')) AS intervalo_tiempo,
           COUNT(*) AS num_visitas
    FROM housing_society_visit_data
    GROUP BY HOUR(Entry_time)
    ORDER BY num_visitas DESC
    LIMIT 1;
    

    Esta consulta mostrará el intervalo de tiempo con el mayor número de visitas, junto con el recuento de visitas en ese intervalo. La salida estará en formato de “hora_inicial-hora_final AM/PM” (por ejemplo, “8-9 AM”).

    Al agrupar los datos por hora y utilizar la función HOUR(), podemos procesar eficientemente millones de filas de datos con baja complejidad temporal.

Comments are closed.