Necesita usar la función DAYOFWEEK
Si el final de la semana es el sábado, cualquier fecha se puede transformar en sábado.
Por ejemplo, esto calcula el próximo sábado
SELECT DATE(NOW() + INTERVAL (7 - DAYOFWEEK(NOW())) DAY);
Esto calcula el próximo domingo (en su lugar, debe usar la función WEEKDAY )
SELECT DATE(NOW() + INTERVAL (6 - WEEKDAY(NOW())) DAY);
Para una tabla llamada mytable con una columna de fecha llamada theDate, su suma sería
sábado
SELECT COUNT(1) DateCount,EndOfWeekDate FROM
(
SELECT DATE(theDate + INTERVAL (7 - DAYOFWEEK(theDate)) DAY) EndOfWeekDate
FROM mytable
) A GROUP BY EndOfWeekDate;
domingo
SELECT COUNT(1) DateCount,EndOfWeekDate FROM
(
SELECT DATE(theDate + INTERVAL (6 - WEEKDAY(theDate)) DAY) EndOfWeekDate
FROM mytable
) A GROUP BY EndOfWeekDate;
Darle una oportunidad !!!
CAVEAT si desea cualquier otro fin de semana que no sea sábado y domingo, escribí un algoritmo loco el 22 de septiembre de 2011 para calcular cualquier semana que comience y termine cualquier día .