Два запроса в одном

Нужно посчитать общее количество строк в таблице и количество строк, удовлетворяющих условию. Можно ли это в целях экономии ресурсов как-то выполнить одним запросом, без UNION?

SELECT count(name) as c FROM mytable WHERE name = "abc"
UNION ALL
SELECT count(name) AS t FROM mytable

Ответы (1 шт):

Автор решения: Akina

Обычное условное агрегирование.

SELECT COUNT(*), SUM(name = 'abc')
FROM table

В строгих СУБД SUM(CASE WHEN name='abc' THEN 1 ELSE 0 END).

→ Ссылка