数字の合計を計算します。結果のデータ型は入力パラメータと同じです。このデータ型の最大値を超える場合は、オーバーフローを考慮して計算されます。
数字のみで機能します。
構文
パラメータ
返される値
例
まず、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 │
└─────────────┴──────────┴─────────────────────────┴──────────────────────┘