CREATE OR REPLACE VIEW transactions.sales_by_country_view
AS
WITH country_data AS (
SELECT verified_stock_transaction_view.country_id,
sum(verified_stock_transaction_view.price::numeric * verified_stock_transaction_view.quantity::numeric - verified_stock_transaction_view.discount::numeric + verified_stock_transaction_view.tax::numeric + verified_stock_transaction_view.shipping_charge::numeric) AS sales
FROM transactions.verified_stock_transaction_view
WHERE verified_stock_transaction_view.book::text = ANY (ARRAY['Sales.Delivery'::text, 'Sales.Direct'::text])
GROUP BY verified_stock_transaction_view.country_id
)
SELECT countries.country_code,
country_data.sales
FROM country_data
JOIN core.countries ON country_data.country_id = countries.country_id;