Страницы

Поиск по вопросам

пятница, 5 апреля 2019 г.

Вывод SUM для UNION запроса

Добрый день. Есть запрос следующего вида:
SELECT COUNT(id) FROM A WHERE id_C = 2
UNION
SELECT COUNT(id) A FROM A WHERE id_C = 3
Запрос урезал максимально, чтобы была ясна суть.
Есть результаты в таком виде:
4 7
Требуется к этому же результату добавить третьей строкой сумму предыдущих двух строк:
4 7 11
Такое возможно не запиливая дополнительного запроса вида:
SELECT COUNT(id) FROM A WHERE id_C IN(2, 3)
?


Ответ

Классически задача решается при помощи WITH ROLLUP. Однако, в MySQL он работает только в рамках одного запроса, в случае же UNION у вас два отдельных запроса. Можно поступить следующим образом
SELECT COUNT(id) FROM A WHERE id_C IN (2,3) GROUP BY id_C WITH ROLLUP

Комментариев нет:

Отправить комментарий