Рассчитайте разницу между результатами двух запросов count (*) на основе двух таблиц в PostgreSQL

Я хочу рассчитать разницу между результатами двух запросов count(*) -type SELECT, выполняемых на двух отдельных таблицах моей базы данных PostgreSQL.

Это то, что я использую в настоящее время (однако я должен был бы все это перевести в одну инструкцию SELECT):

SELECT "count"(*) AS val1 FROM tab1;
SELECT "count"(*) AS val2 FROM tab2;
SELECT val2-val1;

заранее спасибо

Ответ 1

Попробуйте так:

select
(SELECT "count"(*) as val1 from tab1) - (SELECT "count"(*) as val2 from tab2) as total_count

Ответ 2

select t1.cnt - t2.cnt
from (select count(*) as cnt from tab1) as t1
  cross join (select count(*) as cnt from tab2) as t2