2014-01-10 3 views
0

WEEK() или WEEKOFYEAR() год возвращения года. Но если я хочу GROUP BY неделю, с диапазоном времени, охватывающим годы, то GROUP BY WEEK() не будет работать. Поскольку WEEK вернет те же значения, скажем, 3 января 2010 года и 3 января 2011 года. Как решить эту проблему?Mysql Получите неделю жизни

ответ

1

Нашел решение самостоятельно. YEARWEEK(); функция. Группировка по году и неделе не решит проблему. Как и в этом случае, неделя, начинающаяся в декабре и заканчивающаяся в январе, будет разделена на два из-за группового года.

3

Group обеими недели и года:

GROUP BY YEAR(column), WEEK(column) 
+0

он должен быть обратным образом – Cris

+0

Спасибо Cris, изменил его – Veda

+0

@Cris Порядок условий «GROUP BY» не имеет никакого отношения к работе, единственная разница - это эстетика – AeroX

1

Вы должны выбрать YEAR тоже в пункте GROUP BY.

SELECT .... GROUP BY YEAR(date_field), WEEKOFYEAR(date_field), WEEK(date_field); 

Вы можете опустить любой из WEEK... условий.

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