SUM 函数

sum([DISTINCT] expr) [FILTER (WHERE condition)]

功能描述

SUM
SUM
函数用于计算并返回一组数值数据的总和。如果指定了
DISTINCT
DISTINCT
关键字,则会计算去重后的数值集合的总和。

参数说明

  • expr
    expr
    :需要求和的数值类型字段,可以是
    TINYINT
    TINYINT
    SMALLINT
    SMALLINT
    INT
    INT
    BIGINT
    BIGINT
    FLOAT
    FLOAT
    DOUBLE
    DOUBLE
    DECIMAL
    DECIMAL
    类型。

返回类型

  • 对于
    DECIMAL
    DECIMAL
    类型的数据,返回
    DECIMAL
    DECIMAL
    类型的结果。其他情况返回
    DOUBLE
    DOUBLE
    类型的结果。
  • 当指定
    DISTINCT
    DISTINCT
    关键字时,会返回去重后的数值集合的总和。
  • 如果表达式中包含
    NULL
    NULL
    值,
    NULL
    NULL
    值将不参与计算。

使用示例

  1. 计算所有数值的总和:

SELECT sum(col) FROM VALUES (5), (10), (10), (15), (NULL) AS tab(col); +------------+ | `sum`(col) | +------------+ | 40 | +------------+

  1. 计算去重后的数值集合的总和:

SELECT sum(DISTINCT col) FROM VALUES (5), (10), (10), (15), (NULL) AS tab(col); +---------------------+ | `sum`(DISTINCT col) | +---------------------+ | 30 | +---------------------+

  1. 使用 FILTER 子句条件性地计算总和:

SELECT sum(col) FILTER (WHERE col > 10) FROM VALUES (5), (10), (15), (20) AS tab(col); +---------------------------------------+ | `sum`(col) FILTER (WHERE (col > 10)) | +---------------------------------------+ | 35 | +---------------------------------------+

  1. 结合 FILTER 子句和 DISTINCT 计算去重后的条件总和:

SELECT sum(DISTINCT col) FILTER (WHERE col >= 10) FROM VALUES (5), (10), (10), (15), (20) AS tab(col); +------------------------------------------------------+ | `sum`(DISTINCT col) FILTER (WHERE (col >= 10)) | +------------------------------------------------------+ | 45 | +------------------------------------------------------+

通过以上示例,您可以更好地理解

SUM
SUM
函数的用法和应用场景。请根据您的实际需求调整参数和表达式。

联系我们
预约咨询
微信咨询
电话咨询