Я планирую использовать этот запрос для группировки даты на 3 дня. Я хочу, чтобы поле daygroup непрерывно увеличивалось, но оно сбрасывается каждый месяц.Записи группы MySQL в течение 3 дней с учетом следующего месяца
SELECT id, floor(day(date)/3) as daygroup, date
FROM mytable order by id, date
Результат:
id | daygroup | date
1 | 8 | 2016-05-24 00:00:00
1 | 8 | 2016-05-25 00:00:00
1 | 8 | 2016-05-26 00:00:00
1 | 9 | 2016-05-27 00:00:00
1 | 9 | 2016-05-28 00:00:00
1 | 9 | 2016-05-29 00:00:00
1 | 10 | 2016-05-30 00:00:00
1 | 10 | 2016-05-31 00:00:00
1 | 3 | 2016-07-09 00:00:00
1 | 3 | 2016-07-10 00:00:00
1 | 3 | 2016-07-11 00:00:00
Обратите внимание, что после этой записи 1 | 10 | 2016-05-31 00:00:00
в daygroup поле будет сброшена 3. Я считаю, что это из-за функции MySQL day()
ли вы, ребята, есть какие-либо обходной путь решения для этого?
Но ваши данные непрерывно. Я имею в виду 2016-05-31, 2016-06-01 или 2016-05-31, 2016-07-09. –
@TharsanSivakumar хорошо пункт. прямо сейчас. он не является непрерывным, он пропускает. Я могу сделать это непрерывным, если это поможет. Предположим, что он непрерывный, есть ли у вас какие-либо предлагаемые решения? – silverstrike
Думаю, ответ дан ниже, вам может понадобиться получить день в году, используя функцию DAYOFTEAR –