Junior
-- Ёфтани ҳамаи мусофироне, ки ду ё зиёда аз ду рӯз пайдарпай сафар кардаанд
sobes.tech AI
Ҷавоб аз AI
Барои ёфтани мусофироне, ки дар ду ё бештар аз он рӯзҳо сафар кардаанд, метавон аз SQL бо функсияҳои тиреза ё гурӯҳбандӣ истифода кард.
Масалан дар SQL (гумон меравад, ки ҷадвали trips бо сутунҳои passenger_id ва 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;
Логика:
- Барои ҳар як мусофир, сафарҳо ба рӯзҳо тақсим мешаванд.
- Мо санаи ҳозираро бо санаи гузашта муқоиса мекунем, то муайян кунем, ки рӯзҳо пайдарпай ҳастанд ё не.
- Агар ҳадди ақал як ҷуфт рӯзҳои пайдарпай пайдо шавад, мусофир дар натиҷа дохил мешавад.