У меня есть команда SQL UNION, которая из большой базы данных (deaths_all), я получаю год (переменная etos) и количество смертей за этот год (sunoloThanatwn) для трех разных сценариев, как заявлено в союзе.

За каждый год правильно возвращаются 3 строки. Я хочу вычислить сумму sunoloThanatwn, чтобы у меня была одна СУММ (sunoloThanatwn) в год, а не 3 строки в год.

Запрос SQL UNION:

(
  SELECT etos, sunoloThanatwn
  FROM deaths_all
  WHERE field = "A"
  GROUP BY etos
)
UNION
(
  SELECT etos, sunoloThanatwn
  FROM deaths_all
  WHERE field = "B"
  GROUP BY etos
)
UNION
(
  SELECT etos, sunoloThanatwn
  FROM deaths_all
  WHERE field = "C"
  GROUP BY etos
)
ORDER BY etos

Результат запроса следующий (мне нужна сумма за год):

enter image description here

0
ceid-vg 13 Окт 2020 в 11:12

1 ответ

Лучший ответ

Просто выполните один агрегационный запрос:

SELECT etos, SUM(sunoloThanatwn) AS total
FROM deaths_all
WHERE field IN ('A', 'B', 'C')
GROUP BY etos;
1
Tim Biegeleisen 13 Окт 2020 в 08:16