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 produtos de cuidados com a pele sem crueldade com as avaliações mais baixas nos últimos 3 meses.
 ###Tabelas: 
CREATE TABLE ProductReviews (ProductID INT, ProductType VARCHAR(20), IsCrueltyFree BOOLEAN, Rating INT, ReviewDate DATE); INSERT INTO ProductReviews (ProductID, ProductType, IsCrueltyFree, Rating, ReviewDate) VALUES (1, 'Moisturizer', TRUE, 2, '2022-09-15'); INSERT INTO ProductReviews (ProductID, ProductType, IsCrueltyFree, Rating, ReviewDate) VALUES (2, 'Cleanser', TRUE, 3, '2022-10-20'); INSERT INTO ProductReviews (ProductID, ProductType, IsCrueltyFree, Rating, ReviewDate) VALUES (3, 'Toner', TRUE, 4, '2022-11-05');
SELECT ProductID, ProductType, IsCrueltyFree, Rating, ReviewDate FROM (SELECT ProductID, ProductType, IsCrueltyFree, Rating, ReviewDate, ROW_NUMBER() OVER (PARTITION BY ProductID ORDER BY Rating ASC) as rn FROM ProductReviews WHERE ProductType = 'Skincare' AND ReviewDate >= DATEADD(MONTH, -3, CURRENT_DATE) AND IsCrueltyFree = TRUE) x WHERE rn = 1;