Группировка результатов по дате в MySQL

0

Этот оператор SQL

SELECT `ip`, `when` FROM `metrics` WHERE `vidID` = '1' GROUP BY DATE('when')

возвращает один результат, даже если в таблице присутствуют несколько разных дат. Я попытался использовать DATE_FORMAT. Я делаю что-то глупое?

When - это столбец временной метки с полной меткой времени, включая часы, минуты и секунды. Я пытаюсь просто группировать результаты по дням/месяцам/годам.

Теги:
group-by

2 ответа

4
Лучший ответ

Похоже, вы группируете константную строку 'when' вместо поля when.

Используйте это вместо:

GROUP BY DATE(`when`)

Похоже, вы хотите подсчитать IP-адреса для заданной даты:

SELECT COUNT(`ip`) AddressCount, `when`
FROM `metrics` 
WHERE `vidID` = '1' 
GROUP BY DATE(`when`)
  • 0
    +1 просто бей меня к этому
  • 0
    спасибо за ответ, Welbog ... переходит к синтаксической ошибке на этом
Показать ещё 5 комментариев
0

Обычно GROUP BY используется в сочетании с некоторой совокупной функцией (например, SUM, например) для вычисления набора результатов одним или несколькими столбцами. Что вы пытаетесь сделать здесь? Вы хотите отсортировать или просто получить свернутый список, какие IP-адреса имеют записи по датам?

  • 0
    последний. Я просто пытаюсь получить общее число записей на дату на данный момент, а затем общее количество уникальных ips в другом запросе позже.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню