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 produtos de beleza na categoria 'haircare' têm uma contagem de preferência superior a 150 e são vendidos por fornecedores com uma pontuação de sustentabilidade de 90 ou superior, e qual é a receita total desses produtos?
 ###Tabelas: 
CREATE TABLE consumer_preferences (id INT PRIMARY KEY, customer_id INT, product VARCHAR(100), preference INT, FOREIGN KEY (customer_id) REFERENCES customers(id)); CREATE TABLE beauty_products (id INT PRIMARY KEY, product VARCHAR(100), category VARCHAR(100), price FLOAT); CREATE TABLE suppliers (id INT PRIMARY KEY, name VARCHAR(100), product VARCHAR(100), country VARCHAR(100), sustainability_score INT); CREATE TABLE cosmetics_sales (id INT PRIMARY KEY, product VARCHAR(100), quantity INT, revenue FLOAT, supplier_id INT, FOREIGN KEY (supplier_id) REFERENCES suppliers(id));
SELECT cp.product, SUM(cs.revenue) as total_revenue FROM consumer_preferences cp JOIN beauty_products bp ON cp.product = bp.product JOIN cosmetics_sales cs ON cp.product = cs.product JOIN suppliers s ON cs.supplier_id = s.id WHERE bp.category = 'haircare' AND cp.preference > 150 AND s.sustainability_score >= 90 GROUP BY cp.product;