У меня есть таблица Расписание с 3 столбцами ( id, ref_number, pay_date ). Каждый ref_number имеет pay_date в каждом месяце. Итак, таблица выглядит примерно так:
id | ref_number | pay_date
-----------------------------
1 | A001 | 2018-06-29
1 | A001 | 2018-07-29
1 | A002 | 2018-06-30
1 | A002 | 2018-07-30
1 | A002 | 2018-08-30
1 | A003 | 2018-06-29
Я хочу получить только самую раннюю запись для каждого ref_number, который имеет pay_date между сегодняшним днем и датой (30 или 31 день с сегодняшнего дня). Приведенный ниже запрос прекрасно работает в Mysql (позже я бы прошел динамически).
SELECT id,ref_number,MIN(pay_date) FROM schedule
WHERE (pay_date BETWEEN '2018-06-30' AND '2018-07-30')
GROUP BY ref_number
Я знаю, что мы можем включить mysql "strict" в false в конфигурационном файле базы данных, и Group By будет вести себя как положено, но без необходимости изменять, есть ли другой способ обойти эту проблему?
Что было бы красноречивым эквивалентом для этого запроса? С или без группового.