Black November

ATÉ 50% OFF

TÁ ACABANDO!

0 dias

0 horas

0 min

0 seg

1
resposta

[Projeto] meu resultado

-- desafio

DELIMITER $$

CREATE FUNCTION CalcularOcupacaoMedia() RETURNS DECIMAL(5,2)
DETERMINISTIC
BEGIN
    DECLARE totalHospedagens INT;
    DECLARE totalOcupadas INT;
    DECLARE ocupacaoMedia DECIMAL(5,2);

    -- Calcula o número total de hospedagens listadas
    SELECT COUNT(*) INTO totalHospedagens FROM hospedagens;
    
    -- Calcula o número total de hospedagens ocupadas
    SELECT COUNT(*) INTO totalOcupadas FROM reservas;

    -- Calcula a ocupação média como um percentual
    SET ocupacaoMedia = (totalOcupadas / totalHospedagens) * 100;

    RETURN ocupacaoMedia;
END$$

DELIMITER ;

SELECT CalcularOcupacaoMedia();

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi, Ruthe! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

A lógica ficou clara e bem distribuída entre cada etapa do processo.

Uma dica interessante para o futuro é testar o uso de COALESCE para evitar divisao por zero quando tabelas estiverem vazias. Veja este exemplo:


SELECT COALESCE(total, 0) AS total
FROM tabela;

Esse comando substitui valores NULL por 0, evitando erros em contas.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!