Как использовать GROUP BY (date) в MySQL для запуска в данный день недели - PullRequest
4 голосов
/ 26 сентября 2011

Если у меня есть запрос MySQL для агрегирования итогов по неделям, например:

select sum(keyword1), sum(keyword2), sum(keyword3), dateTime
from myTable
group by week(dateTime)
order by dateTime asc

Я считаю, что недели начинаются в воскресенье.

Можно ли это изменить наПонедельник?

Столбец dateTime в формате временной метки MySQL 2011-09-26 12: 34: 32.

Ответы [ 2 ]

6 голосов
/ 26 сентября 2011

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

select sum(keyword1), sum(keyword2), sum(keyword3),  week(DATE_SUB(dateTime, INTERVAL 1 DAY)) my_week
from myTable
group by week(DATE_SUB(dateTime, INTERVAL 1 DAY))
order by my_week asc
4 голосов
/ 26 сентября 2011
mysql> select week('2011-09-25', 1);
+-----------------------+
| week('2011-09-25', 1) |
+-----------------------+
|                    38 |
+-----------------------+

mysql> select week('2011-09-25', 0);
+-----------------------+
| week('2011-09-25', 0) |
+-----------------------+
|                    39 |
+-----------------------+

Итак, http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_default_week_format

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