SUM
構文
関連項目:
構文、セマンティクスおよび制限事項の詳細は、「分析ファンクション」を参照してください。
目的
SUM
は、expr
の値の合計を戻します。これは、集計ファンクションまたは分析ファンクションとして使用できます。
このファンクションは、引数として、任意の数値データ型、または暗黙的に数値データ型に変換可能な数値以外のデータ型を取ります。また、引数の数値データ型と同じデータ型を返します。
リリース23では、INTERVAL
間隔データ型のサポートが追加されています。ただし、間隔データ型を数値データ型に暗黙的に変換することはできません。入力がINTERVAL
の場合、ファンクションは入力と同じ単位のINTERVAL
を返します。
関連項目:
暗黙的な変換の詳細は、表2-9を参照してください
DISTINCT
を指定する場合は、analytic_clause
のquery_partition_clause
のみを指定できます。order_by_clause
およびwindowing_clause
は指定できません。
関連項目:
expr
の有効な書式の詳細は、「SQL式」を参照してください。また、「集計ファンクション」を参照してください。
ベクトル集計操作
SUM
を使用すると、null以外の入力に対してベクトル追加操作を実行できます。
expr
は、VECTOR
に評価される必要があり、BINARY
ベクトルであってはなりません。返されたベクトルには、入力と同じ数のディメンションがあり、その形式は必ずFLOAT64
です。ディメンション数の柔軟度に関しては、各集計グループ内で、すべての入力に同じ数のディメンションがある必要があります。
NULLベクトルは無視されます。それらは、平均ベクトルを計算するときに考慮されません。集計グループ内のすべての入力がNULLである場合、そのグループについては、結果はNULLになります。算術演算の適用時に特定のディメンションがオーバーフローすると、エラーが発生します。
ルール
-
DISTINCT
構文は使用できません。 -
GROUP BY
とGROUP 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