Abaixo está uma instrução que descreve uma tarefa de geração de SQL, combinada com uma entrada que fornece mais contexto sobre os esquemas de tabela disponíveis. Escreva o código SQL que responda adequadamente à solicitação
 ###Instrução: Quais são os 3 principais varejistas na América do Sul com base na receita total de produtos de comércio justo?
 ###Tabelas: 
CREATE TABLE retailers (id INT, name TEXT, country TEXT); INSERT INTO retailers (id, name, country) VALUES (1, 'Retailer A', 'South America'), (2, 'Retailer B', 'South America'), (3, 'Retailer C', 'North America'), (4, 'Retailer D', 'South America'); CREATE TABLE products (id INT, name TEXT, is_fair_trade BOOLEAN, price DECIMAL(5, 2)); INSERT INTO products (id, name, is_fair_trade, price) VALUES (1, 'Product X', true, 50.00), (2, 'Product Y', false, 30.00), (3, 'Product Z', true, 70.00), (4, 'Product W', false, 40.00); CREATE TABLE sales (id INT, retailer INT, product TEXT, quantity INT); INSERT INTO sales (id, retailer, product, quantity) VALUES (1, 1, 'Product X', 100), (2, 1, 'Product Z', 50), (3, 2, 'Product Y', 150), (4, 3, 'Product W', 80), (5, 4, 'Product X', 120), (6, 4, 'Product Z', 70);
SELECT retailers.name, SUM(sales.quantity * products.price) as revenue FROM sales INNER JOIN retailers ON sales.retailer = retailers.id INNER JOIN products ON sales.product = products.name WHERE products.is_fair_trade = true GROUP BY sales.retailer ORDER BY revenue DESC LIMIT 3;