Как совместить SELECT столбца регулятора с SELECT суммы столбцов в одном запросе? - PullRequest
0 голосов
/ 28 февраля 2019

Это мой запрос, который не работает должным образом:

SELECT `id`, SUM(`column1`) as `c1`, SUM(`column2`) AS `c2` 
FROM `table` 
WHERE `id` IN (18, 19, 20, 21)

Что я хотел бы получить от него: я хочу получить SUM(column1) и SUM(column2) для каждого id в спискев части WHERE и в «отличном» id, соответствующем ей.Я понятия не имею, как объединить обычный столбец SELECT с столбцом SUM SELECT в одном запросе - если это вообще возможно?Пример:

`table` structure:
id column1 column2
18    5      3
18    5      3
20    10     10
20    10     5
20    10     5
21    1      1
22    10     10

Should return:
id  c1  c2
18  10  6
20  30  20
21  1   1

1 Ответ

0 голосов
/ 28 февраля 2019

Вы должны сгруппировать строки:

SELECT `id`, SUM(`column1`) as `c1`, SUM(`column2`) AS `c2` 
FROM `table` 
WHERE `id` IN (18, 19, 20, 21)
GROUP BY `id`

SUM, COUNT и другие математические функции работают с GROUP BY.

Если вам нужно отфильтровать эти специальные поля, используйте вместо этого HAVING WHERE: https://www.w3schools.com/sql/sql_having.asp

...