Sobes.tech
Junior

-- Encontrar a todos los pasajeros que realizaron viajes de dos o más días consecutivos

sobes.tech AI

Respuesta de la IA

Para encontrar pasajeros que realizaron viajes en dos o más días consecutivos, se puede usar SQL con funciones de ventana o agrupamientos.

Ejemplo en SQL (se asume una tabla trips con columnas passenger_id y trip_date):

WITH ordered_trips AS (
  SELECT
    passenger_id,
    trip_date,
    LAG(trip_date) OVER (PARTITION BY passenger_id ORDER BY trip_date) AS prev_date
  FROM trips
), consecutive_days AS (
  SELECT
    passenger_id,
    trip_date,
    prev_date,
    CASE WHEN trip_date = DATE_ADD(prev_date, INTERVAL 1 DAY) THEN 1 ELSE 0 END AS is_consecutive
  FROM ordered_trips
), flagged AS (
  SELECT passenger_id
  FROM consecutive_days
  WHERE is_consecutive = 1
  GROUP BY passenger_id
)
SELECT DISTINCT passenger_id FROM flagged;

Lógica:

  • Para cada pasajero, ordenamos los viajes por fecha.
  • Comparamos la fecha actual con la anterior para verificar si los días son consecutivos.
  • Si hay al menos un par de días consecutivos, el pasajero aparece en el resultado.