/ / Como usar o GROUP BY (date) no MySQL para iniciar em um determinado dia da semana - mysql, group-by

Como usar GROUP BY (data) no MySQL para iniciar em um determinado dia da semana - mysql, group-by

Se eu tiver uma consulta MySQL para agregar totais por semana, por exemplo:

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

Acho que as semanas parecem começar num domingo.

Isso pode ser alterado para uma segunda-feira?

Coluna dateTime está no formato MySQL Timestamp 2011-09-26 12:34:32.

Respostas:

4 para resposta № 1
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 |
+-----------------------+

Assim, http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_default_week_format


5 para resposta № 2

Você quer que o domingo pertença à semana anterior, então remova um dia dele

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