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

Тема в разделе "Базы данных", создана пользователем new_forward, 14 фев 2014.

Статус темы:
Закрыта.
Модераторы: latteo
  1. new_forward

    new_forward

    Регистр.:
    5 май 2008
    Сообщения:
    668
    Симпатии:
    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 год.

    Что не так?
     
  2. Vhhhhh

    Vhhhhh Писатель

    Регистр.:
    24 фев 2014
    Сообщения:
    6
    Симпатии:
    1
    Попробуйте использовать DISTINCT.
     
  3. dwarf

    dwarf Постоялец

    Регистр.:
    12 июн 2011
    Сообщения:
    88
    Симпатии:
    18
    У вас группировка по месяцам - MONTH(DATS_7)
    Если группируются данные за 2 года, соответствующие месяцы в них группируются вместе, т.е. январь 2013 группируется с январем 2014 и так далее. В группировке должен участвовать еще и год.
     
Статус темы:
Закрыта.