2015-07-17 2 views
0

Я хотел бы сгруппировать серию отсчетов, но по неделям. Я знаю, что с помощью функции недели() возвращает число в течение недели, но я хотел бы что-то вроде этого:MySQL: подсчет по неделям.

Week     count(*) 
Jan 1 - Jan 7  30 
Jan 8 - 14   50 

and so on... 

Есть ли способ сделать это? Большое спасибо.

+0

Вы всегда хотите начать с 1 января? Если да, то чего вы хотите с прошлой неделей? Почти всегда будут недели, которые есть в оба года. – v010dya

+0

Можете ли вы поделиться исходными данными. –

ответ

0
select 
concat(cast(DATE_ADD(yourdate, INTERVAL(1-DAYOFWEEK(yourdate)) DAY) as char), ' - ', 
cast(DATE_ADD(yourdate, INTERVAL(7-DAYOFWEEK(yourdate)) DAY) as char)) 
as period, count(*) 
from tablename 
group by week(yourdate) 
+0

Еще одна вещь. Есть ли способ устранить минуты и секунды? Может быть, как усечение или что-то еще? Благодарю. –

+0

- это тип данных 'datetime' или' timestamp'? вы можете использовать функцию 'DATE'. например 'DATE (yourdate)' –

+0

Это дата. и получил это! еще раз спасибо. –

Смежные вопросы