MySql меньше количества с предложением Group By

0

В таблице отчетов есть несколько записей даты и количества за каждый день. Я хочу выбрать сумму количества меньше 3 для каждой записи дня отдельно.

Пока у меня это:

SELECT
  DATE(date_time) AS date_time,
  SUM(quantity) AS quantity
FROM report
WHERE date_time BETWEEN ? AND ?
AND quantity < 3
GROUP BY DATE(date_time)

Таблица Пример:

| date_time           | quantity
-------------------------
| 2017-08-12 09:11:51 | 1
| 2017-08-12 10:12:51 | 1
| 2017-08-12 12:45:51 | 1
| 2017-08-13 11:12:51 | 1
| 2017-08-13 11:12:51 | 1
| 2017-08-13 12:45:51 | 1
| 2017-08-13 13:57:51 | 1
| 2017-08-14 14:23:51 | 1
| 2017-08-14 16:34:51 | 1
| 2017-08-15 16:21:51 | 1
| 2017-08-16 14:31:51 | 1

После выбора:

| date_time  | quantity
 -------------
| 2017-08-14 | 2
| 2017-08-15 | 1
| 2017-08-16 | 1

Как я могу это сделать?

Теги:

1 ответ

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

ПОПРОБУЙТЕ ЭТО: вам нужно использовать HAVING для фильтрации группы, тогда как WHERE фильтрует строки

SELECT DATE(date_time) as date_time
    ,SUM(quantity) as quantity
FROM report
WHERE date_time BETWEEN '' AND  ''
GROUP BY DATE(date_time)
HAVING SUM(quantity) < 3  --Before it was data specific COUNT(quantity)
  • 0
    Как я могу суммировать количество после выбора? Как я продемонстрировал выше, могу ли я получить результат как 4 после выбора без date_time?
  • 0
    Если вы все еще хотите суммировать и возвращать одну строку в качестве желаемого результата, тогда вам нужно использовать подзапрос. Попробуйте сами, если не поймете, пожалуйста, ответьте.

Ещё вопросы

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