YashanDB SUM函数

SUM函数计算给定参数expr的数值和,其返回值类型如下:

expr类型返回值
TINYINT、SMALLINTBIGINT
INT、BIGINTNUMBER
FLOATFLOAT
DOUBLEDOUBLE

当参数为其他类型且无法转换为上述类型时,不执行计算并返回类型转换错误或是类型不支持。

在单行计算中,当expr的值为NULL时,函数返回NULL。

在多行计算中,函数将忽略expr值为空的行,当所有行均为空时,计算结果为NULL。

聚集函数不可嵌套,因此expr为除聚集函数之外的其他通用表达式,其类型只能是数值型、字符型。

DISTINCT

表示在计算数值和时,过滤掉重复的行。

ALL

默认值,表示对所有行计算数值和。

示例


  

SELECT area_no,SUM(employee_count) sum FROM branches1 GROUP BY area_no;
AREA_NO                 SUM

                         70
01                       70
04                       40
02                       
05                       40
  

SELECT area_no,SUM(10) sum FROM branches1 GROUP BY area_no;
AREA_NO         SUM

                 20
01               40
04               40
02               10
05               10

OVER

当指定OVER关键字时,SUM将作为窗口函数,并支持滑动窗口,返回多行的数值和。

analytic_clause

窗口函数通用语法。

示例


SELECT year,month,branch,revenue_total FROM finance_info;
YEAR  MONTH BRANCH REVENUE_TOTAL 

2001  01    0201            2888
2021  01    0201           28888
2021  01    0101           38888
2021  02    0101           37778

SELECT year,month,
revenue_total curr,
SUM(revenue_total) OVER (PARTITION BY year ORDER BY month ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) tonow
FROM finance_info;
YEAR  MONTH        CURR       TONOW 

2001  01           2888        2888
2021  01          28888       28888
2021  01          38888       67776
2021  02          37778      105554


SELECT year,month,
SUM(revenue_total) curr,
SUM(SUM(revenue_total)) OVER (PARTITION BY year ORDER BY month ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) tonow
FROM finance_info
GROUP BY year,month;
YEAR  MONTH        CURR       TONOW 

2001  01           2888        2888
2021  01          67776       67776
2021  02          37778      105554
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值