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: Identificar os 5 principais ingredientes, por peso total, usados em cosméticos que não são veganos, divididos por categoria de produto e ordenados por peso total em ordem decrescente.
 ###Tabelas: 
CREATE TABLE ingredients (product_id INT, ingredient VARCHAR(255), weight FLOAT, is_vegan BOOLEAN); INSERT INTO ingredients (product_id, ingredient, weight, is_vegan) VALUES (1, 'IngredientA', 10, false), (1, 'IngredientB', 5, true), (2, 'IngredientA', 8, false), (2, 'IngredientC', 12, false); CREATE TABLE categories (product_id INT, category VARCHAR(255)); INSERT INTO categories (product_id, category) VALUES (1, 'CategoryA'), (2, 'CategoryA'), (3, 'CategoryB');
SELECT ingredients.ingredient, categories.category, SUM(ingredients.weight) as total_weight FROM ingredients JOIN categories ON ingredients.product_id = categories.product_id WHERE ingredients.is_vegan = false GROUP BY ingredients.ingredient, categories.category ORDER BY total_weight DESC LIMIT 5;