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: Encontre os 5 principais produtos com os ingredientes mais caros por grama, ordenados pelo custo total.
 ###Tabelas: 
CREATE TABLE ingredients (ingredient_id INT, ingredient VARCHAR(255), product_id INT, price DECIMAL(5,2), gram_weight DECIMAL(5,2)); CREATE TABLE products (product_id INT, product_name VARCHAR(255)); INSERT INTO ingredients (ingredient_id, ingredient, product_id, price, gram_weight) VALUES (1, 'Aqua', 1, 0.01, 1000), (2, 'Glycerin', 1, 0.1, 100), (3, 'Sodium Laureth Sulfate', 1, 0.2, 50), (4, 'Cocamidopropyl Betaine', 1, 0.3, 50), (5, 'Parfum', 1, 1.5, 10); INSERT INTO products (product_id, product_name) VALUES (1, 'Loreal Shampoo');
SELECT product_id, product_name, SUM(price * gram_weight) as total_cost FROM ingredients JOIN products ON ingredients.product_id = products.product_id GROUP BY product_id, product_name ORDER BY total_cost DESC FETCH FIRST 5 ROWS ONLY;