Суммирование результата подзапроса

0

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

| 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

Я могу получить результат с помощью этого запроса:

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 

Результат:

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

После этого я хочу добавить количество СУММ. Например:

 quantity
---------
| 4

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

SELECT SUM(topla) FROM (
  ( 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 
  ) AS topla
)

Как я могу подсчитать количество?

  • 0
    Я не могу воспроизвести что-либо из вышеперечисленного.
Теги:

2 ответа

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

Сначала вы должны суммировать количество по имени столбца. (В примере я назвал его sub_quantity)

Во-вторых, вам не нужно выбирать дату.

Таким образом, ваш запрос может быть

SELECT SUM(sub_quantity) AS quantity
FROM
  ( SELECT SUM(quantity) AS sub_quantity
   FROM report
   WHERE date_time BETWEEN '' AND ''
   GROUP BY DATE(date_time)
   HAVING SUM(quantity) < 3) a
1

Просто замените topla количеством и удалите "как topla" из запроса перед topla.

SELECT SUM(quantity) total FROM (
  ( SELECT DATE(date_time) as date_time
        ,SUM(quantity) as quantity
    FROM report
    WHERE date_time BETWEEN '' AND  ''
    GROUP BY DATE(date_time)
    HAVING total < 3 
  )
)

Чтобы использовать функцию SUM, вы должны указать имя столбца, а не имя таблицы.

  • 0
    Я удалил лишние скобки и выдает ошибку: error: Error: ER_DERIVED_MUST_HAVE_ALIAS: Every derived table must have its own alias
  • 0
    @ilvthsgm да, ему нужен псевдоним. Дайте это один

Ещё вопросы

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