यदि आप अपने दो प्रश्नों को संघ के अनुकूल बनाते हैं, तो आप परिणामों को जोड़ सकते हैं और एक अतिरिक्त क्वेरी के साथ जोड़ सकते हैं:
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
0 AS "total_accounts"
. होना और 0 AS "churned_accounts"
इसका मतलब है कि दो प्रश्नों में समान फ़ील्ड मौजूद हैं, जो UNION
. बनाते हैं संभव है।