Mysql GROUP BY непонятные чудеса

Статус
В этой теме нельзя размещать новые ответы.

new_forward

Профессор
Регистрация
5 Май 2008
Сообщения
673
Реакции
44
Доброго времени суток!

Столкнулся с такой проблемой, запрос:

Код:
SELECT DATS_7, TSTP, COUNT(*) as count_t FROM result_tests WHERE GNRC < 6 AND DATS_7 BETWEEN '2013-07-01' AND '2014-01-31' GROUP BY TSTP, MONTH(DATS_7)

отображает сгруппированные данные за январь 2014 года, а вот такой запрос:

Код:
SELECT DATS_7, TSTP, COUNT(*) as count_t FROM result_tests WHERE GNRC < 6 AND DATS_7 BETWEEN '2012-07-01' AND '2014-01-31' GROUP BY TSTP, MONTH(DATS_7)

уже нет.

Стоит интервал дат увеличить на год и уже куда то пропадают данные за 2014 год.

Что не так?
 
Попробуйте использовать DISTINCT.
 
Код:
SELECT DATS_7, TSTP, COUNT(*) as count_t FROM result_tests WHERE GNRC < 6 AND DATS_7 BETWEEN '2012-07-01' AND '2014-01-31' GROUP BY TSTP, MONTH(DATS_7)

Что не так?

У вас группировка по месяцам - MONTH(DATS_7)
Если группируются данные за 2 года, соответствующие месяцы в них группируются вместе, т.е. январь 2013 группируется с январем 2014 и так далее. В группировке должен участвовать еще и год.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху