Nếu bạn làm cho hai truy vấn của mình Tương thích với nhau, thì bạn có thể kết hợp các kết quả và tổng hợp với một truy vấn bổ sung:
SELECT payer,
sum(churned_accounts) AS "churned_count",
sum(total_accounts) AS "total_count"
FROM (
SELECT CAST(payor_id AS CHAR(50)) AS "payer",
count(*) as "churned accounts",
0 AS "total accounts"
FROM paid_users_no_more
INNER JOIN paid_users
ON paid_users_no_more.user_id=paid_users.user_id
WHERE paid_users.payment_start_date NOT BETWEEN '2015-08-01 00:00:00'::timestamp AND '2015-08-30 23:59:59'::timestamp
AND paid_users_no_more.payment_stop_date BETWEEN '2015-08-01 00:00:00'::timestamp AND '2015-08-30 23:59:59'::timestamp
GROUP BY paid_users.payor_id
UNION
SELECT CAST(paid_users.payor_email AS CHAR(50)) AS "payer",
0 AS "churned accounts",
count(*) AS "total accounts"
FROM paid_users
WHERE paid_users.payment_start_date NOT BETWEEN '2015-08-01 00:00:00'::timestamp AND '2015-08-30 23:59:59'::timestamp
GROUP BY paid_users.payor_email
) as All_Accounts
Có 0 AS "total_accounts"
và 0 AS "churned_accounts"
có nghĩa là hai truy vấn có các trường giống nhau, tạo nên UNION
có thể.