Как суммировать конкретные строки и столбцы в SQL? - PullRequest
0 голосов
/ 16 января 2019
pnr mnd pris 
  1   1  600
  1   7  900
  2   1  600
  2   7  600
  3   1   40
  3   7   40

У меня проблема с суммированием определенных строк в столбцах. Глядя на вышесказанное, таблица называется travel и имеет 3 столбца:

  • pnr - Личный номер
  • месяц - месяц
  • Прис - Цена

Итак, я хочу суммировать итоговую цену за конкретный месяц, поэтому в данном случае это должно быть 1240 долларов США и месяц 1. Для 7-го месяца это должно быть 1540 долларов США.

У меня проблемы с выполнением запроса. Так далеко, что я пытался это:

SELECT t.rnr, t.mnd, SUM(t.pris)
FROM travel AS t
WHERE t.mnd = 1

Результат, который я получаю, составляет 3720 долларов США, и я понятия не имею, как SQL удалось рассчитать это для меня.

Ценю, если кто-нибудь может помочь мне!

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Для этого вам нужно удалить столбец pnr из вывода (это не имеет значения и приведет к разделению ваших данных) и добавить GROUP BY:

SELECT t.mnd, SUM(t.pris)
FROM travel AS t
WHERE t.mnd = 1
GROUP BY t.mnd

Демонстрационная версия: https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=b34ec2bb9c077c2d74ffc66748c5c142

(Использование агрегатной функции без группировки, как у вас сейчас, не является стандартной функцией SQL и часто может быть отключено в MySQL. Если она включена, вы не всегда можете получить ожидаемый / намеченный результат .)

0 голосов
/ 16 января 2019

просто сгруппируйте свой результат с mnd колонкой

SELECT t.mnd, SUM(t.pris)
FROM travel AS t
group by t.mnd
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...