概要
UInt8、UInt16、UInt32、UInt64、Int8、Int16、Int32、Int64、Float32、または Float64 型の任意の 2 つのオペランドに対して使用できます。
演算を実行する前に、両方のオペランドは結果型にキャストされます。結果型は次のように決定されます (ただし、以下の関数ドキュメントで別途
指定されている場合を除きます) 。
- 両方のオペランドが 32 ビット以下の場合、結果型のサイズは、2 つのオペランドのうち大きい方の次に大きい型のサイズになります
(整数サイズの昇格) 。たとえば、
UInt8 + UInt16 = UInt32やFloat32 * Float32 = Float64です。 - いずれか一方のオペランドが 64 ビット以上の場合、結果型のサイズは 2 つのオペランドのうち大きい方と同じになります。たと
えば、
UInt32 + UInt128 = UInt128やFloat32 * Float64 = Float64です。 - いずれか一方のオペランドが符号付きであれば、結果型も符号付きになります。そうでない場合は符号なしになります。たとえば、
UInt32 * Int32 = Int64やUInt32 * UInt32 = UInt64です。
abs
x の絶対値を計算します。x が符号なし型の場合は変化しません。x が符号付き型の場合は、符号なし数値を返します。
構文
x— 絶対値を求める値
x の絶対値
例
使用例
Query
Response
avg2
x1, x2]— 平均を求める 2 つの値を受け取ります。
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
byteSwap
- 10進整数を、ビッグエンディアンの16進表現に変換します。つまり、3351772109 -> C7 C7 FB CD (4バイト)
- バイト順を反転します。つまり、C7 C7 FB CD -> CD FB C7 C7
- 結果をビッグエンディアンとみなして整数に戻します。つまり、CD FB C7 C7 -> 3455829959 この関数の用途の1つは、IPv4 アドレスのバイト順を反転することです。
x— 整数。(U)Int*
x を返します。(U)Int*
例
使用例
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
divide
a と b の商を計算します。結果の型は常に Float64 です。
整数除算には intDiv 関数を使用します。
0 による除算では、inf、-inf、または nan が返されます。x— 被除数 -y— 除数
x を y で割った商
例
2 つの数値を割る
Query
Response
Query
Response
divideDecimal
result_scale 引数 (範囲 [0, 76] の定数 Integer) で明示的に指定できます。指定しない場合、結果の scale は指定された引数の最大 scale になります。
この関数は通常の
divide より大幅に低速です。
精度を厳密に制御する必要がない場合や、高速な計算が必要な場合は、divide の使用を検討してください。Decimal256
例
例 1
Query
Response
Query
Response
divideOrNull
divide と同様ですが、0 で除算した場合は NULL を返します。
構文
x— 被除数 -y— 除数
x と y の商、または NULL。
例
ゼロによる除算
Query
Response
gcd
a と b の最大公約数を返します。
0 で除算した場合、または最小の負の数をマイナス 1 で除算した場合は、
例外が送出されます。
構文
x— 最初の整数 -y— 2 つ目の整数
x と y の最大公約数。
例
使用例
Query
Response
ifNotFinite
isFinite(x) ? x : y.
構文
xが有限の場合はx。xが有限でない場合はy。
Query
Response
intDiv
x を y で整数除算します。つまり、
商を切り下げて計算します。
結果のビット幅は被除数 (最初のパラメータ) と同じです。
0 で除算した場合、商が被除数の範囲に収まらない場合、
または最小の負数をマイナス 1 で除算した場合は、例外が発生します。
構文
x— 左側のオペランド。 -y— 右側のオペランド。
x を y で整数除算した結果
例
2 つの浮動小数点数を整数除算する
Query
Response
Query
Response
intDivOrNull
intDiv と同様ですが、0 で除算した場合、または最小の負数を -1 で除算した場合は NULL を返します。
構文
x を y で整数除算した結果、または NULL。
例
0 による整数除算
Query
Response
Query
Response
intDivOrZero
intDiv と同様ですが、0 による除算時、または最小の負の数を -1 で除算した場合は 0 を返します。
構文
Query
Response
Query
Response
isFinite
NaN でもない場合は 1 を返し、
それ以外の場合は 0 を返します。
構文
NaN でもない場合は 1、それ以外の場合は 0 を返します。
例
数値が有限かどうかを判定する
Query
Response
isInfinite
1 を返し、それ以外の場合は 0 を返します。
NaN に対しては 0 が返される点に注意してください。
構文
1、それ以外の場合は 0 (NaN を含む) 。
例
数値が無限大かどうかを判定する
Query
Response
isNaN
NaN の場合は 1 を返し、それ以外の場合は 0 を返します。
構文
NaN の場合は 1、それ以外は 0
例
使用例
Query
Response
lcm
x と y の最小公倍数を返します。
ゼロで除算した場合、または最小の負の数をマイナス 1 で除算した場合は、例外がスローされます。
構文
x と y の最小公倍数を返します。(U)Int*
例
使用例
Query
Response
max2
x と y のうち、より大きい方を返します。
構文
x— 1 つ目の値(U)Int8/16/32/64またはFloat*またはDecimaly— 2 つ目の値(U)Int8/16/32/64またはFloat*またはDecimal
x と y のうち大きい方の値を返します。 Float64
例
使用例
Query
Response
midpoint
x1[, x2, ...]— 平均を求める対象として、単一の値または複数の値を受け取ります。
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
min2
x と y のうち、小さいほうの値を返します。
構文
x— 1つ目の値(U)Int8/16/32/64またはFloat*またはDecimaly— 2つ目の値(U)Int8/16/32/64またはFloat*またはDecimal
x と y のうち、より小さい値を返します。 Float64
例
使用例
Query
Response
minus
a と b の差を計算します。結果は常に符号付きとなります。
plus と同様に、日付または日時から整数を減算できます。
さらに、日時同士の減算もサポートされており、その場合は両者の時間差が返されます。
構文
x— 被減数。 -y— 減数。
Query
Response
Query
Response
modulo
mod
引数
a— 被除数 -b— 除数 (法)
Query
Response
moduloLegacy
% 演算子を使用する従来の modulo 実装で、負の引数に対しては負の結果を返すことがあります。この関数は、古いテーブルのパーティション化ロジックとの後方互換性を保つために用意されています。標準的な動作が必要な場合は、modulo または positiveModulo を使用してください。
構文
(U)Int* または Float*
例
基本的な使い方
Query
Response
moduloOrNull
a を b で割ったときの剰余を計算します。関数 modulo と似ていますが、moduloOrNull は
右側の引数が 0 の場合に NULL を返します。
構文
modOrNull
引数
戻り値
x を y で割った剰余を返します。除数が 0 の場合は NULL を返します。
例
除数が 0 の moduloOrNull
Query
Response
moduloOrZero
0 の場合は 0 を返します。
例
使用例
Query
Response
multiply
x と y の積を計算します。
構文
Query
Response
multiplyDecimal
result_scale 引数 (範囲 [0, 76] の定数 Integer) で明示的に指定できます。指定しない場合、結果のスケールは指定された引数のスケールの最大値になります。
これらの関数は通常の
multiply と比べて大幅に低速です。
精度を厳密に制御する必要がなく、または高速な計算が必要な場合は、multiply の使用を検討してくださいDecimal256
例
使用例
Query
Response
Query
Response
Query
Response
negate
x の符号を反転します。結果は常に符号付きになります。
構文
x— 符号を反転する値。
x の符号を反転した値を返します
例
使用例
Query
Response
plus
x と y の合計を計算します。別名: x + y (演算子) 。
整数と日付、または日時を加算することもできます。前者では
日付に日数が加算され、後者では
日時に秒数が加算されます。
日付と時刻を加算することもできます。Date と Time を
加算すると、DateTime が生成されます。Date と Time64、または Date32 と
Time もしくは Time64 を加算すると、DateTime64 が生成されます。
構文
x— 左側のオペランド。 -y— 右側のオペランド。
Query
Response
Query
Response
Query
Response
positiveModulo
x を y で割った剰余を計算します。関数
modulo と似ていますが、positiveModulo は常に 0 以上の数を返します。
構文
positive_modulo, pmod
引数
戻り値
x から、y で割り切れ、x を超えない最大の整数を引いた値を返します。
例
使用例
Query
Response
positiveModuloOrNull
a を b で割った剰余を計算します。関数 positiveModulo と似ていますが、positiveModuloOrNull は
右側の引数が 0 の場合は NULL を返します。
構文
positive_modulo_or_null, pmodOrNull
引数
x— 被除数。(U)Int*/Float32/64。 -y— 除数 (法) 。(U)Int*/Float32/64。
x から、y で割り切れ、かつ x 以下の最大の整数を引いた差を返します。除数が 0 の場合は null を返します。
例
positiveModuloOrNull
Query
Response