Junior
-- Leia kõik reisijad, kes on teinud kahe või enama päeva järjest reisid
sobes.tech AI
Vastus AI-lt
Otsige reisijad, kes on teinud reise kahe või enama järjestikuse päeva jooksul, kasutades SQL-i aknafunktsioone või rühmitusi.
Näide SQL-is (eeldades, et tabel on trips koos veergudega passenger_id ja 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;
Loogika:
- Iga reisija reisid on kuvatud kuupäeva järgi järjestatuna.
- Võrreldakse käesolevat kuupäeva eelneva kuupäevaga, et kontrollida, kas päevad on järjestikused.
- Kui on vähemalt üks järjestikuste päevade paar, kaasatakse reisija tulemustesse.