|
WITH domain_counts(domain, accounts_count)
|
|
AS (
|
|
SELECT domain, COUNT(*) as accounts_count
|
|
FROM accounts
|
|
WHERE domain IS NOT NULL
|
|
GROUP BY domain
|
|
)
|
|
SELECT domain, accounts_count
|
|
FROM domain_counts
|
|
UNION
|
|
SELECT domain_blocks.domain, COALESCE(domain_counts.accounts_count, 0)
|
|
FROM domain_blocks
|
|
LEFT OUTER JOIN domain_counts ON domain_counts.domain = domain_blocks.domain
|
|
UNION
|
|
SELECT domain_allows.domain, COALESCE(domain_counts.accounts_count, 0)
|
|
FROM domain_allows
|
|
LEFT OUTER JOIN domain_counts ON domain_counts.domain = domain_allows.domain
|