总和聚合函数

适用于:检查标记是的砖的SQL检查标记是的砖运行时

返回值的总和计算一组。

语法

总和((所有|截然不同的]expr)(过滤器(在哪里气孔导度)]

这个函数也可以作为一个调用窗口函数使用条款。

参数

  • expr:一个表达式,计算一个数值或间隔。

  • 气孔导度:一个可选的布尔表达式过滤行用于聚合。

返回

如果expr是一个整数类型,一个长整型数字。如果expr小数(p,s)结果是小数(p+分钟(10,31便士),s)。如果expr结果是一个区间类型匹配expr

否则,双。

如果截然不同的总结了唯一指定值。

如果结果溢出类型砖SQL提出了一个结果ARITHMETIC_OVERFLOW错误。返回一个NULL代替使用try_sum

警告

在砖运行时,如果spark.sql.ansi.enabled溢出的BIGINT不会导致一个错误,而是“包装”的结果。

例子

>选择总和(上校)(5),(10),(15)作为选项卡(上校);30.>选择总和(上校)过滤器(在哪里上校<15)(5),(10),(15)作为选项卡(上校);15>选择总和(截然不同的上校)(5),(10),(10),(15)作为选项卡(上校);30.>选择总和(上校)(),(10),(15)作为选项卡(上校);25>选择总和(上校)(),()作为选项卡(上校);——try_sum溢出一个长整型数字>选择try_sum(c1)(5E18::长整型数字),(5E18::长整型数字)作为选项卡(c1);——在ANSI模式和返回一个错误如果溢出BIGINT>选择总和(c1)(5E18::长整型数字),(5E18::长整型数字)作为选项卡(c1);错误:ARITHMETIC_OVERFLOW——try_sum溢出一个区间>选择try_sum(c1)(时间间隔“100000000”),(时间间隔“100000000”)作为选项卡(c1);——在间隔溢出和返回一个错误>选择总和(c1)(时间间隔“100000000”),(时间间隔“100000000”)作为选项卡(c1);错误:ARITHMETIC_OVERFLOW