MySQL计算一个复杂的表达式

时间:2009-09-29 16:49:23

标签: sql mysql

我在数据库中有2个字段,我想找到它们的百分比差异。 所以数学公式应该是

ABSOLUTE((field1-field2)/(MAXIMUM(field1, field2)))

问题是我不知道如何要求最多2个数字。由于sql中的MAX返回列的最大值。

5 个答案:

答案 0 :(得分:1)

SELECT  ABS(field1 - field2) / GREATEST(field1, field2)
FROM    mytable

答案 1 :(得分:0)

可能是这样的:

if (field1 > field2, (field1 - field2)/field1, (field2 - field1) / field1)

答案 2 :(得分:0)

这个怎么样

ABS((field1-field2)/(GREATEST(field1, field2)))

答案 3 :(得分:0)

尝试IF:

SELECT IF(field1 < field2, field1, field2)

答案 4 :(得分:0)

您正在寻找名为GREATEST的函数,因为MAX在SQL中的其他位置使用。

http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_greatest