1
resposta

[Projeto] 10 Faça como eu fiz: utilizando as funções nativas

SELECT

UPPER(H.tipo) AS Tipo_Hospedagem,

COUNT(H.hospedagem_id) AS Total_Hospedagens,

ROUND(AVG(A.nota), 2) AS Media_Geral_Nota

FROM
Hospedagens AS H
LEFT JOIN
Avaliacoes AS A ON H.hospedagem_id = A.hospedagem_id
GROUP BY
UPPER(H.tipo)
ORDER BY
Media_Geral_Nota DESC;
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

SELECT

CASE

    WHEN LENGTH(A.comentario) <= 50 THEN 'Curto (Detalhe Mínimo)'

    WHEN LENGTH(A.comentario) <= 150 THEN 'Médio (Feedback Padrão)'

    ELSE 'Longo (Feedback Detalhado)'
END AS Categoria_Comentario,

COUNT(A.avaliacao_id) AS Total_Comentarios,

ROUND(AVG(A.nota), 2) AS Media_Nota_Categoria

FROM
Avaliacoes AS A
WHERE

A.comentario IS NOT NULL

GROUP BY
Categoria_Comentario
ORDER BY
Total_Comentarios DESC;
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Funções Utilizadas: CASE, LENGTH() (ou LEN() em SQL Server, ou CHAR_LENGTH() em MySQL/PostgreSQL), COUNT(), AVG(), ROUND().

1 resposta

Olá Paloma.
Realmente muito bom.
Obrigado por compartilhar.
Bons estudos.