SUM

構文

関連項目:

構文、セマンティクスおよび制限事項の詳細は、「分析ファンクション」を参照してください。

目的

SUMは、exprの値の合計を戻します。これは、集計ファンクションまたは分析ファンクションとして使用できます。

このファンクションは、引数として、任意の数値データ型、または暗黙的に数値データ型に変換可能な数値以外のデータ型を取ります。また、引数の数値データ型と同じデータ型を返します。

リリース23では、INTERVAL間隔データ型のサポートが追加されています。ただし、間隔データ型を数値データ型に暗黙的に変換することはできません。入力がINTERVALの場合、ファンクションは入力と同じ単位のINTERVALを返します。

関連項目:

暗黙的な変換の詳細は、表2-9を参照してください

DISTINCTを指定する場合は、analytic_clausequery_partition_clauseのみを指定できます。order_by_clauseおよびwindowing_clauseは指定できません。

関連項目:

exprの有効な書式の詳細は、「SQL式」を参照してください。また、「集計ファンクション」を参照してください。

ベクトル集計操作

SUMを使用すると、null以外の入力に対してベクトル追加操作を実行できます。

exprは、VECTORに評価される必要があり、BINARYベクトルであってはなりません。返されたベクトルには、入力と同じ数のディメンションがあり、その形式は必ずFLOAT64です。ディメンション数の柔軟度に関しては、各集計グループ内で、すべての入力に同じ数のディメンションがある必要があります。

NULLベクトルは無視されます。それらは、平均ベクトルを計算するときに考慮されません。集計グループ内のすべての入力がNULLである場合、そのグループについては、結果はNULLになります。算術演算の適用時に特定のディメンションがオーバーフローすると、エラーが発生します。

ルール

  • DISTINCT構文は使用できません。

  • GROUP BYGROUP BY ROLLUPのみがサポートされています。

  • VECTORの入力引数では、分析ファンクションはサポートされていません。

例については、『AI Vector Searchユーザーズ・ガイド』算術演算子を参照してください。

集計の例

次の例では、サンプル表hr.employeesにあるすべての給与の合計を計算します。

SELECT SUM(salary) "Total"
   FROM employees;
 
   Total
----------
    691400

分析の例

次の例では、サンプル表hr.employeesの各マネージャについて、そのマネージャの下で働く従業員の現在の給与以下の給与の累積合計を計算します。RaphaelyおよびCambraultが同じ累積を持っています。これは、RaphaelyおよびCambraultが同じ給与であるため、Oracle Databaseが給与の値を同時に追加し、同じ累積合計を両方の行に対して適用したためです。

SELECT manager_id, last_name, salary,
   SUM(salary) OVER (PARTITION BY manager_id ORDER BY salary
   RANGE UNBOUNDED PRECEDING) l_csum
   FROM employees
   ORDER BY manager_id, last_name, salary, l_csum;

MANAGER_ID LAST_NAME                     SALARY     L_CSUM
---------- ------------------------- ---------- ----------
       100 Cambrault                      11000      68900
       100 De Haan                        17000     155400
       100 Errazuriz                      12000      80900
       100 Fripp                           8200      36400
       100 Hartstein                      13000      93900
       100 Kaufling                        7900      20200
       100 Kochhar                        17000     155400
       100 Mourgos                         5800       5800
       100 Partners                       13500     107400
       100 Raphaely                       11000      68900
       100 Russell                        14000     121400
. . .
       149 Hutton                          8800      39000
       149 Johnson                         6200       6200
       149 Livingston                      8400      21600
       149 Taylor                          8600      30200
       201 Fay                             6000       6000
       205 Gietz                           8300       8300
           King                           24000      24000