Фильтрация записей с определенной даты месяца

#mysql #sql

Вопрос:

настольные рейсы

У меня есть эта таблица, в которой показаны записи о рейсах пассажиров, я пытаюсь получить данные о пассажирах из таблицы «пассажиры», но только для пассажиров, у которых более 5 рейсов в заданную дату.

Попробовал этот запрос для пассажиров, которые были более 5 раз в октябре, но он не работает….

   SELECT * FROM passengers 
WHERE pass_id IN (SELECT pass_id from flights
where f_date BETWEEN '2020-10-1' and '2020-10-31')
HAVING count(pass_id)>5;
 

Ответ №1:

Правильная идея, но вы упускаете GROUP BY :

 SELECT p.*
FROM passengers p
WHERE p.pass_id IN (SELECT f.pass_id 
                    FROM flights f
                    WHERE f_date BETWEEN '2020-10-01' and '2020-10-31'
                    GROUP BY pass_id
                    HAVING count(*) > 5
                   );
 

Комментарии:

1. Интересно, я все еще учусь, но все же я был несколько близок, спасибо!