Sobes.tech
Junior

-- Trouver tous les passagers ayant effectué des voyages de deux jours ou plus consécutifs

sobes.tech IA

Réponse de l'IA

Pour trouver les passagers ayant effectué des voyages sur deux jours consécutifs ou plus, vous pouvez utiliser SQL avec des fonctions de fenêtrage ou des regroupements.

Exemple en SQL (supposons une table trips avec les colonnes passenger_id et 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;

Logique:

  • Pour chaque passager, on ordonne les voyages par date.
  • On compare la date actuelle avec la précédente pour vérifier si les jours sont consécutifs.
  • Si au moins une paire de jours consécutifs est trouvée, le passager est inclus dans le résultat.