O código da procedure disponibilizado para copiar é o seguinte:
USE insightplaces;
DROP PROCEDURE IF EXISTS calcular_taxa_ocupacao;
DELIMITER //
CREATE PROCEDURE calcular_taxa_ocupacao(ID VARCHAR(255))
BEGIN
SELECT
p.nome AS Proprietario,
MIN(primeira_data) AS primeira_data,
SUM(total_dias) AS total_dias,
SUM(dias_ocupados) AS dias_ocupados,
ROUND((SUM(dias_ocupados) / SUM(total_dias)) * 100) AS taxa_ocupacao
FROM(
SELECT
hospedagem_id,
MIN(data_inicio) AS primeira_data,
SUM(DATEDIFF(data_fim, data_inicio)) AS dias_ocupados,
DATEDIFF(MAX(data_fim), MIN(data_inicio)) AS total_dias
FROM
alugueis
GROUP BY
hospedagem_id
) tabela_taxa_ocupacao
JOIN
hospedagens h ON a.hospedagem_id = h.hospedagem_id -- Substituir por (hospedagens h ON tabela_taxa_ocupacao.hospedagem_id = h.hospedagem_id)
JOIN
enderecos e ON h.endereco_id = e.endereco_id -- Substituir por (proprietarios p ON h.proprietario_id = p.proprietario_id)
JOIN
regioes_geograficas r ON e.estado = r.estado -- Excluir esse JOIN
WHERE
r.regiao = "Sudeste" -- Substituir por (p.proprietario_id = ID)
GROUP BY
ano, mes -- Substituir por (p.proprietario_id)
ORDER BY
ano, mes; -- Substituir por (total_dias DESC;)
END//
DELIMITER; -- Substituir por (DELIMITER ;)
Realizando os ajustes, código fica igual ao que o instrutor usou no vídeo:
USE insightplaces;
DROP PROCEDURE IF EXISTS calcular_taxa_ocupacao;
DELIMITER //
CREATE PROCEDURE calcular_taxa_ocupacao(ID VARCHAR(255))
BEGIN
SELECT
p.nome AS Proprietario,
MIN(primeira_data) AS primeira_data,
SUM(total_dias) AS total_dias,
SUM(dias_ocupados) AS dias_ocupados,
ROUND((SUM(dias_ocupados) / SUM(total_dias)) * 100) AS taxa_ocupacao
FROM(
SELECT
hospedagem_id,
MIN(data_inicio) AS primeira_data,
SUM(DATEDIFF(data_fim, data_inicio)) AS dias_ocupados,
DATEDIFF(MAX(data_fim), MIN(data_inicio)) AS total_dias
FROM
alugueis
GROUP BY
hospedagem_id
) tabela_taxa_ocupacao
JOIN
hospedagens h ON tabela_taxa_ocupacao.hospedagem_id = h.hospedagem_id
JOIN
proprietarios p ON h.proprietario_id = p.proprietario_id
WHERE
p.proprietario_id = ID
GROUP BY
p.proprietario_id
ORDER BY
total_dias DESC;
END//
DELIMITER ;
Consegui rodar com esses ajustes!