当我尝试为 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。
注意,
DECIMAL (2, 2)
表示总共2位数字,其中2位是小数,即像.25
这样的值。
但是您可能想要
DECIMAL (4, 2)
,能够给出像 12.75
这样的值。