Você precisa usar a função DAYOFWEEK
Se o final da semana no sábado, qualquer data poderá ser transformada em um sábado.
Por exemplo, isso calcula o próximo sábado
SELECT DATE(NOW() + INTERVAL (7 - DAYOFWEEK(NOW())) DAY);
Isso calcula o próximo domingo (você deve usar a função WEEKDAY )
SELECT DATE(NOW() + INTERVAL (6 - WEEKDAY(NOW())) DAY);
Para uma tabela chamada mytable com uma Data Coluna chamada theDate, seu somatório seria
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;
De uma chance !!!
CAVEAT, se você quiser outro final de semana que não seja sábado e domingo, escrevi um algoritmo insano em 22 de setembro de 2011 para calcular qualquer semana que comece e termine em qualquer dia .