我正在尝试用 SQL 编写一个函数,输出一个球队在一个赛季的棒球比赛中的胜率。
CREATE FUNCTION
calc_winning_percentage(IN w integer, IN l integer, OUT p numeric)
RETURNS numeric AS $$
SELECT $1 ::numeric/$1 + $2 AS p;
$$ LANGUAGE SQL;
这是当前功能。它应该很简单。W = 胜利。L = 损失。P = 百分比。你取胜 (w) 并除以胜 + 负 (w + l)。理论上,这给出了胜率。
我拿了一些已经提供的数据并尝试将其插入。它很接近,但它不正确。假设我们有一支 96 胜 63 负的球队。如果你把这两个数字加起来,你会得到 159. 96/159 = ~.604。但是,当我通过查询运行这些数字时,我得到 64.0000。
我不擅长用其他语言编写函数(我保证),所以我在这里做错了什么?