Делать математику с записями SQL - PullRequest
0 голосов
/ 19 сентября 2019

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

SELECT fuelDate, SUM(gallons)  
FROM fuel566243
WHERE fuelDate BETWEEN '2019-01-04' AND '2019-01-24'
GROUP BY fuelDate 
ORDER BY fuelDate

Проблема с этим кодом, в генерируемой колонке SUM, он просто отображает все значенияколонка галлонов, но не складывает их.Есть ли способ сделать это в SQL и вывести результат?Или проще использовать цикл foreach для циклического перемещения по массиву и добавления значений с помощью PHP?

Когда я запускаю приведенный выше код, он дает мне такой вывод.Как я могу получить сумму столбца галлонов, показанного ниже?Есть ли способ сделать это в SQL?Или мне нужно использовать цикл для добавления значений с помощью PHP?

| fuelDate | Gallons | | 
| 2019-01-04 | 53.8885 | |
| 2019-01-15 | 198.1700 | | 
| 2019-01-17 | 167.2750 | | 
| 2019-01-23 | 176.5620 | | 
| 2019-01-24 | 181.0240 | |


1 Ответ

0 голосов
/ 19 сентября 2019

GROUP BY определяет строки, которые возвращаются.Вы включили gallons в качестве ключа агрегации, поэтому вы указали, что вы хотите отдельную строку для каждого значения.

Просто удалите ключ из GROUP BY и SELECT:

SELECT fuelDate, SUM(gallons)  
FROM fuel566243
WHERE fuelDate BETWEEN '2019-01-04' AND '2019-01-24'
GROUP BY fuelDate 
ORDER BY fuelDate;

Если вы хотите получить итоговое значение за период, то вы хотите агрегировать с no GROUP BY:

SELECT SUM(gallons)  
FROM fuel566243
WHERE fuelDate BETWEEN '2019-01-04' AND '2019-01-24';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...