Help wanted!
The following content of this documentation page has been machine-translated. But unlike other websites, it is not done on the fly. This translated text lives on GitHub repository alongside main ClickHouse codebase and waits for fellow native speakers to make it more human-readable. You can also use the original English version as a reference.
算術関数
すべての算術関数について、結果の型は、そのような型がある場合、結果が収まる最小の数値型として計算されます。 最小値は、ビット数、署名されているかどうか、および浮動小数点数に基づいて同時に取得されます。 十分なビットがない場合は、最も高いビットタイプが取られます。
例:
SELECT toTypeName(0), toTypeName(0 + 0), toTypeName(0 + 0 + 0), toTypeName(0 + 0 + 0 + 0)
┌─toTypeName(0)─┬─toTypeName(plus(0, 0))─┬─toTypeName(plus(plus(0, 0), 0))─┬─toTypeName(plus(plus(plus(0, 0), 0), 0))─┐
│ UInt8 │ UInt16 │ UInt32 │ UInt64 │
└───────────────┴────────────────────────┴─────────────────────────────────┴──────────────────────────────────────────┘
算術関数は、UInt8、UInt16、UInt32、UInt64、Int8、Int16、Int32、Int64、Float32、Float64のいずれかの型のペアに対しても機能します。
オーバーフローは、C++と同じ方法で生成されます。
プラス(a、b)、a+b演算子
数値の合計を計算します。
また、日付または日付と時刻を持つ整数を追加することもできます。 日付の場合、整数を追加することは、対応する日数を追加することを意味します。 日付と時刻の場合は、対応する秒数を加算することを意味します。
マイナス(a,b),a-b演算子
差を計算します。 結果は常に署名されます。
You can also calculate integer numbers from a date or date with time. The idea is the same – see above for ‘plus’.
乗算(a,b),a*b演算子
数値の積を計算します。
除算(a,b)、a/b演算子
数値の商を計算します。 結果の型は常に浮動小数点型です。
整数除算ではありません。 整数除算の場合は、 ‘intDiv’ 機能。
ゼロで割ると ‘inf’, ‘-inf’,または ‘nan’.
intDiv(a,b)
数値の商を計算します。 整数に分割し、(絶対値で)丸めます。
例外は、ゼロで除算するとき、または最小の負の数をマイナスで除算するときにスローされます。
intDivOrZero(a,b)
とは異なる ‘intDiv’ ゼロで除算するとき、または最小の負の数をマイナスで除算するときにゼロを返します。
modulo(a,b),a%b演算子
除算後の剰余を計算します。
引数が浮動小数点数の場合は、小数点部分を削除することによって整数に事前変換されます。
残りはC++と同じ意味で取られます。 切り捨て除算は、負の数に使用されます。
例外は、ゼロで除算するとき、または最小の負の数をマイナスで除算するときにスローされます。
moduloOrZero(a,b)
とは異なる ‘modulo’ 除数がゼロのときにゼロを返すという点で。
否定(a),-演算子
逆符号で数値を計算します。 結果は常に署名されます。
abs(a)
数値(a)の絶対値を算出する。 つまり、a\<0の場合、-aを返します。 符号付き整数型の場合、符号なしの数値を返します。
gcd(a,b)
数値の最大公約数を返します。
例外は、ゼロで除算するとき、または最小の負の数をマイナスで除算するときにスローされます。
lcm(a,b)
数値の最小公倍数を返します。
例外は、ゼロで除算するとき、または最小の負の数をマイナスで除算するときにスローされます。