總和聚合函數

適用於:檢查標記是的磚的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