数字の合計を計算します。結果のデータ型は入力パラメータと同じです。このデータ型の最大値を超える場合は、オーバーフローを考慮して計算されます。
数字のみで機能します。
構文
パラメータ
返される値
例
まず、employeesというテーブルを作成し、その中に架空の従業員データを挿入します。この例では、オーバーフローが発生する可能性があるため、salaryをUInt16として選択します。
クエリ:
CREATE TABLE employees
(
`id` UInt32,
`name` String,
`monthly_salary` UInt16
)
ENGINE = Log
SELECT
sum(monthly_salary) AS no_overflow,
sumWithOverflow(monthly_salary) AS overflow,
toTypeName(no_overflow),
toTypeName(overflow)
FROM employees
sumおよびsumWithOverflow関数を使用して従業員の給料の合計額をクエリし、toTypeName関数を使ってそのタイプを表示します。sum関数の場合、結果の型は合計を含むのに十分なUInt64ですが、sumWithOverflowでは結果の型はUInt16のままです。
クエリ:
SELECT
sum(monthly_salary) AS no_overflow,
sumWithOverflow(monthly_salary) AS overflow,
toTypeName(no_overflow),
toTypeName(overflow),
FROM employees;
結果:
┌─no_overflow─┬─overflow─┬─toTypeName(no_overflow)─┬─toTypeName(overflow)─┐
1. │ 118700 │ 53164 │ UInt64 │ UInt16 │
└─────────────┴──────────┴─────────────────────────┴──────────────────────┘