我的表格包含几栏:column_1,column_2和column_3。
我在表格中添加了一个名为score的新列。我想要做的是根据这三列计算得分并轻松调整参数。
说我的分数公式如下:
score = a * column_1 + b * column_2 + c * column_3
可以创建一个udf或进程(之前从未使用过)来轻松实现吗?
所以我有一个像getScore(a,b,c)这样的函数 我可以做类似的事情:
select
column_1,
column_2,
column_3,
getScore(0.5, 0.1, 0.4) as score
from table
或
update table set score = getScore(0.5, 0.1, 0.4)
谢谢!
答案 0 :(得分:11)
是
CREATE FUNCTION `getScore`(`a` DECIMAL(12,4), `b` DECIMAL(12,4), `c` DECIMAL(12,4)) RETURNS DECIMAL(12,4)
BEGIN
RETURN a + b + c;
END
SELECT getScore(0.3, 0.4, 0.5)
-> 1.2000
但是如果您需要表中的某些值,则还需要将它们作为参数包含在内。
SELECT getScore(column1, column2, column3, 0.5, 0.1, 0.4) AS score FROM table