在 SQL 上创建平均分数的存储函数,错误代码 1064

问题描述 投票:0回答:1

当我尝试为 3 个表的 netflix 平均 IMD 分数创建存储函数时,我不断抛出错误代码。该代码可以单独运行,但不能作为存储函数运行。答案返回为 7.9999,所以我想尝试将过程中的小数输出减少到只有两位小数,例如 7.9。

CREATE FUNCTION Average_Netflix_Score (
Score INT
) 
RETURNS DECIMAL (2, 2)
DETERMINISTIC
BEGIN 
DECLARE average_score DECIMAL (2, 2);

SELECT AVG(SCORE) INTO average_score
    FROM (
        SELECT SCORE FROM NETFLIX_19
        UNION ALL
        SELECT SCORE FROM NETFLIX_20
        UNION ALL
        SELECT SCORE FROM NETFLIX_21
    ) AS CombinedScores;
    
    RETURN avg_score;
END;

预期存储函数将保存值为 7.9 作为结果。但出现语法错误代码 1067。

sql function stored-procedures syntax
1个回答
0
投票

注意,

DECIMAL (2, 2)
表示总共2位数字,其中2位是小数,即像
.25
这样的值。

但是您可能想要

DECIMAL (4, 2)
,能够给出像
12.75
这样的值。

© www.soinside.com 2019 - 2024. All rights reserved.