На SQLite вы не можете.Поддерживаемые функции SQL действительно минимальны, вам лучше иметь локальный сервер postgres / mysql - тот же сервер и версию, которую вы будете использовать в рабочей среде.
В реальной базе данных SQL у вас есть функция EXTRACT(YEAR_MONTH from date)
, и вы можете использовать его с GROUP BY
.
Это может быть правильный SQL, вы можете использовать его с простым Leave.connection.execute(...)
:
SELECT
GROUP_CONCAT(`leaves`.`id` SEPARATOR ',') AS ids,
GROUP_CONCAT(`leaves`.`start_date` SEPARATOR ',') AS start_dates
FROM `leaves`
GROUP BY EXTRACT(YEAR_MONTH from `leaves`.`start_date`)
HAVING COUNT(`leaves`.`id`) > 1
С данными в изображении,у вас будет следующий результат:
ids | start_dates
------------------+---------------------------------
5,6,8 | 2019-01-08,2019-01-31,2019-01-25
1,2,3,4 | ...
и не будет записи для листьев, которые не делятся месяцами с другими.