Как сгруппировать по неделям, указав день конца недели? - PullRequest
3 голосов
/ 21 сентября 2010

Мне нужно запустить отчет, сгруппированный по неделям.Это можно сделать с помощью group by week(date), но клиент хочет установить день недели, который отмечает конец недели.Так что это может быть вторник, среда и т. Д. Как я могу разбить это на группы по запросу?

Тип столбца datetime - метка времени unix.

1 Ответ

4 голосов
/ 21 сентября 2010

Функция WEEK() принимает необязательный второй параметр для указания начала недели:

Эта функция возвращает номер недели для даты. Форма с двумя аргументами WEEK() позволяет указать, начинается ли неделя в воскресенье или понедельник и должно ли возвращаемое значение находиться в диапазоне от 0 до 53 или от 1 до 53.

Однако его можно установить только на воскресенье или понедельник.


ОБНОВЛЕНИЕ: В дополнение к комментариям ниже, вы можете рассмотреть возможность добавления нового столбца в вашу таблицу, чтобы он действовал как поле группировки на основе WEEK(DATE_ADD(date INTERVAL x DAY)), как предлагается в комментариях. Возможно, вы захотите создать триггеры для автоматической генерации этих значений при каждом обновлении поля date и при добавлении новых строк. После этого вы сможете создать пригодный для использования индекс для этого нового поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...