SELECT i.billing_country AS country,
COUNT(total) AS total_invoice,
COUNT(DISTINCT customer_id) AS total_customer
FROM invoice AS i
LEFT JOIN
(
SELECT billing_country,
COUNT(total) AS total_invoice
FROM invoice
GROUP BY billing_country
) AS tig ON i.billing_country = tig.billing_country
LEFT JOIN
(
SELECT country,
COUNT(DISTINCT customer_id) AS total_customer
FROM client
GROUP BY country
) AS tcg ON tig.billing_country = tcg.country
WHERE EXTRACT (YEAR FROM CAST (invoice_date AS DATE)) IN
(
SELECT EXTRACT (YEAR FROM CAST (invoice_date AS DATE)) AS YEAR
FROM invoice
WHERE EXTRACT (MONTH FROM CAST (invoice_date AS DATE)) IN (6,7,8)
GROUP BY YEAR
ORDER BY SUM(total) DESC
LIMIT 1
)
GROUP BY i.billing_country
ORDER BY total_invoice DESC, country