MySQL ABS函数

时间:2019-11-20 08:52:26  来源:igfitidea点击:

简介:在本教程中,您将学习如何使用MySQL ABS()函数返回数字的绝对值。

MySQL ABS()函数概述

ABS()函数是一个数学函数,它返回数字的绝对(正)值。

下面显示了ABS()函数的语法:

ABS(n)

在此语法中,n是文字数字或计算结果为数字的表达式。
如果n为负数,则ABS()函数会将负值更改为正值。
如果n为零或正,则ABS()函数无效。

返回值的数据类型与输入参数的数据类型相同。

下图说明了ABS()函数:

MySQL ABS()函数示例

下面的示例显示对四个不同的数字使用ABS()函数的结果:

SELECT 
    ABS(-10), 
    ABS(0), 
    ABS(10);

这是查询输出:

在表格列上使用ABS功能

我们将使用产品表进行演示:

以下查询查找产品代码MSRP以及产品MSRP与产品在其产品系列中的平均MSRP的偏差。

SELECT 
    productName, 
    productLine,
    msrp,
    ABS(
        ROUND(
            msrp - AVG(msrp) OVER (
                PARTITION BY productLine
            )
        )
    ) deviation
FROM
    products
ORDER BY 
    productName;

这是输出:

让我们分解一下偏差列的计算。

首先,AVG()窗口函数返回其产品线中每个产品的平均MSRP:

AVG(msrp) OVER ( PARTITION BY productLine )

其次,以下公式返回MSRP和平均产品线MSRP之间的差:

msrp - AVG(msrp) OVER (PARTITION BY productLine)

第三,ROUND()函数将偏差四舍五入为零。

ROUND(
     msrp - AVG(msrp) OVER (
        PARTITION BY productLine
       )
)

第四,由于某些产品的建议零售价低于平均建议零售价,因此它们与平均值的偏差为负。
ABS()函数应用于所有偏差以返回绝对值。

在本教程中,您学习了如何使用MySQL ABS()函数获取数字的绝对值。