Добрый день. Есть запрос следующего вида:
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
Комментариев нет:
Отправить комментарий