Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

DELIMITER

SELECT ROUND(AVG(NOTA), 2) MediaNotas FROM avaliacoes;

DELIMITER $$
CREATE FUNCTION MediaAvalicoes()
RETURNS FLOAT DETERMINISTIC
BEGIN
DECLARE media FLOAT;

SELECT ROUND (AVG (nota), 2) MediaNotas 
INTO media
FROM avaliacoes;

RETURN media;
END$$

DELIMITER ;

Erro com o DELIMITER no final

14:21:49 CREATE FUNCTION MediaAvalicoes() RETURNS FLOAT DETERMINISTIC BEGIN DECLARE media FLOAT Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4 0.000 sec

Sem o DELIMITER no FinalL funciona:

14:22:14 CREATE FUNCTION MediaAvalicoes() RETURNS FLOAT DETERMINISTIC BEGIN DECLARE media FLOAT; SELECT ROUND (AVG (nota), 2) MediaNotas INTO media FROM avaliacoes; RETURN media; END 0 row(s) affected 0.032 sec

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta
solução!

Ei, Terezinha! Tudo bem?

O seu código está no caminho certo! O erro gerado é de sintaxe.

No seu código, vejo que está com a indentação padronizada ao canto, isso pode estar também prejudicando a leitura do código.

Teste rodar da seguinte forma, para garantir que o MySQL reconheça o comando DELIMITER antes de começar a definição da função:

DELIMITER $$

CREATE FUNCTION MediaAvalicoes()
RETURNS FLOAT
DETERMINISTIC
BEGIN
    DECLARE media FLOAT;
    
    SELECT ROUND (AVG (nota), 2) MediaNotas 
    INTO media
    FROM avaliacoes;
    
    RETURN media;
END$$ 

DELIMITER ;

Espero que dê certo e qualquer dúvida, compartilhe no fórum.

Até mais, Terezinha!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!