このトピックでは、データ分析機能でサポートされている数学関数の構文、パラメーター、および例について説明します。ビジネス要件に基づいて数学関数を選択し、データを計算したり、データ型を変換したりできます。
| 関数 | 説明 |
| ABS | 絶対値を計算します。 |
| ASIN | 逆正弦を計算します。 |
| COS | 余弦を計算します。 |
| COSH | 双曲線余弦を計算します。 |
| CEIL | 数値を切り上げて、最も近い整数値を返します。 |
| EXP | 指数値を計算します。 |
| FLOOR | 数値を切り下げて、最も近い整数値を返します。 |
| LOG | 対数を計算します。 |
| POW | 値の n 乗を計算します。 |
| RAND | 乱数を返します。 |
| ROUND | 指定された小数点以下の桁数に丸めた値を返します。 |
| SIN | 正弦を計算します。 |
| SINH | 双曲線正弦を計算します。 |
| SQRT | 平方根を計算します。 |
| TAN | 正接を計算します。 |
| TANH | 双曲線正接を計算します。 |
| TRUNC | 入力値を指定された小数点以下の桁数に切り捨てます。 |
| HEX | 整数または文字列を 16 進数に変換します。 |
| PI | π の値を計算します。 |
| UNHEX | 16 進数の文字列を文字列に変換します。 |
ABS
- 構文
double abs(double <number>) bigint abs(bigint <number>) decimal abs(decimal <number>) - 説明
number の絶対値を計算します。
- パラメーター number: 必須。 number が DOUBLE、BIGINT、または DECIMAL 型の場合、同じ型の値が返されます。
- number が BIGINT 型の場合、戻り値は BIGINT 型です。
- number が DOUBLE 型の場合、戻り値は DOUBLE 型です。
- number が DECIMAL 型の場合、戻り値は DECIMAL 型です。
- number が STRING 型の場合、計算前に DOUBLE 型の値に暗黙的に変換されます。
- 入力値が null に設定されている場合、null が返されます。
- number が上記の型以外のデータ型の場合、エラーが返されます。
説明 入力値が BIGINT 型で、BIGINT 型の最大値より大きい場合、DOUBLE 型の値が返されます。ただし、精度は失われる可能性があります。 - 戻り値
戻り値の型は入力値の型によって異なり、DOUBLE、BIGINT、または DECIMAL のいずれかになります。
- 例
-- 戻り値は NULL です。 abs(null); -- 戻り値は 1 です。 abs(-1); -- 戻り値は 1.2 です。 abs(-1.2); -- 戻り値は 2.0 です。 abs("-2"); -- 1.2232083745629837E32 という値が返されます。 abs(122320837456298376592387456923748);
ASIN
- 構文
double asin(double <number>) decimal asin(decimal <number>) - 説明
number の逆正弦を計算します。
- パラメーター
number: 必須。値は DOUBLE または DECIMAL 型で、-1 から 1 の範囲です。入力値が STRING または BIGINT 型の場合、計算前に DOUBLE 型の値に暗黙的に変換されます。入力値が別のデータ型の場合、エラーが返されます。
- 戻り値
DOUBLE または DECIMAL 型の値が返されます。値の範囲は -π/2 から π/2 です。入力パラメーターが null に設定されている場合、null が返されます。
- 例
-- 戻り値は 1.5707963267948966 です。 asin(1); -- 戻り値は 1.5707963267948966 です。 asin(-1);
CEIL
- 構文
bigint ceil(double <value>) bigint ceil(decimal <value>) - 説明
value を切り上げて、最も近い整数を返します。
- パラメーター
value: 必須。DOUBLE または DECIMAL 型の値。入力値が STRING または BIGINT 型の場合、計算前に DOUBLE 型の値に暗黙的に変換されます。入力値が別のデータ型の場合、エラーが返されます。
- 戻り値
BIGINT 型の値が返されます。入力パラメーターが null に設定されている場合、null が返されます。
- 例
-- 戻り値は 2 です。 ceil(1.1); -- 戻り値は -1 です。 ceil(-1.1);
COS
- 構文
double cos(double <number>) decimal cos(decimal <number>) - 説明
ラジアン値である number の余弦を計算します。
- パラメーター
number: 必須。DOUBLE または DECIMAL 型の値。入力値が STRING または BIGINT 型の場合、計算前に DOUBLE 型の値に暗黙的に変換されます。入力値が別のデータ型の場合、エラーが返されます。
- 戻り値
DOUBLE または DECIMAL 型の値が返されます。入力パラメーターが null に設定されている場合、null が返されます。
- 例
-- 戻り値は 2.6794896585028633e-8 です。 cos(3.1415926/2); -- 戻り値は -0.9999999999999986 です。 cos(3.1415926);
COSH
- 構文
double cosh(double <number>) decimal cosh(decimal <number>) - 説明
number の双曲線余弦を計算します。
- パラメーター
number: 必須。DOUBLE または DECIMAL 型の値。入力値が STRING または BIGINT 型の場合、計算前に DOUBLE 型の値に暗黙的に変換されます。入力値が別のデータ型の場合、エラーが返されます。
- 戻り値
DOUBLE または DECIMAL 型の値が返されます。入力パラメーターが null に設定されている場合、null が返されます。
- 例
-- 戻り値は 2.5091784169949913 です。 cosh(3.1415926/2);
EXP
- 構文
double exp(double <number>) decimal exp(decimal <number>) - 説明
number の指数値を計算します。
- パラメーター
number: 必須。DOUBLE または DECIMAL 型の値。入力値が STRING または BIGINT 型の場合、計算前に DOUBLE 型の値に暗黙的に変換されます。入力値が別のデータ型の場合、エラーが返されます。
- 戻り値
DOUBLE または DECIMAL 型の値が返されます。入力パラメーターが null に設定されている場合、null が返されます。
- 例
-- 戻り値は 4.810477252069109 です。 exp(3.1415926/2);
FLOOR
- 構文
bigint floor(double <number>) bigint floor(decimal <number>) - 説明
number を切り下げて、number の値以下の最も近い整数を返します。
- パラメーター
number: 必須。DOUBLE または DECIMAL 型の値。入力値が STRING または BIGINT 型の場合、計算前に DOUBLE 型の値に暗黙的に変換されます。入力値が別のデータ型の場合、エラーが返されます。
- 戻り値
BIGINT 型の値が返されます。入力パラメーターが null に設定されている場合、null が返されます。
- 例
-- 戻り値は 1 です。 floor(1.2); -- 戻り値は 0 です。 floor(0.1); -- 戻り値は -2 です。 floor(-1.2); -- 戻り値は -1 です。 floor(-0.1); -- 戻り値は 0 です。 floor(0.0); -- 戻り値は 0 です。 floor(-0.0);
LOG
- 構文
double log(double <base>, double <x>) decimal log(decimal <base>, decimal <x>) - 説明
底が base である x の対数を計算します。
- パラメーター
- base: 必須。DOUBLE または DECIMAL 型の値。入力値が STRING または BIGINT 型の場合、計算前に DOUBLE 型の値に暗黙的に変換されます。入力値が別のデータ型の場合、エラーが返されます。
- x: 必須。DOUBLE または DECIMAL 型の値。入力値が STRING または BIGINT 型の場合、計算前に DOUBLE 型の値に暗黙的に変換されます。入力値が別のデータ型の場合、エラーが返されます。
- 戻り値 DOUBLE または DECIMAL 型の対数値が返されます。
- 入力パラメーターが null に設定されている場合、null が返されます。
- 入力値が負の値または 0 の場合、エラーが返されます。
- base の値が 1 の場合、エラーが返されます。値 1 はゼロ除算を引き起こします。
- 例
-- 戻り値は 4.0 です。 log(2, 16);
POW
- 構文
double pow(double <x>, double <y>) decimal pow(decimal <x>, decimal <y>) - 説明
x の y 乗、つまり x^y を計算します。
- パラメーター
- x: 必須。DOUBLE または DECIMAL 型の値。入力値が STRING または BIGINT 型の場合、計算前に DOUBLE 型の値に暗黙的に変換されます。入力値が別のデータ型の場合、エラーが返されます。
- y: 必須。DOUBLE または DECIMAL 型の値。入力値が STRING または BIGINT 型の場合、計算前に DOUBLE 型の値に暗黙的に変換されます。入力値が別のデータ型の場合、エラーが返されます。
- 戻り値
DOUBLE または DECIMAL 型の値が返されます。入力パラメーターが null に設定されている場合、null が返されます。
- 例
-- 戻り値は 65536.0 です。 pow(2, 16);
RAND
- 構文
double rand(bigint <seed>) - 説明
DOUBLE 型の乱数を返します。値の範囲は 0 から 1 です。
- パラメーター
seed: オプション。値は BIGINT 型です。このパラメーターは、乱数の生成の開始点を決定する乱数シードを指定します。
説明 seed を使用して乱数シーケンスを決定できます。 seed が決定されると、この関数の戻り値は固定されます。 - 戻り値
DOUBLE 型の値が返されます。
- 例
-- 戻り値は 4.7147460303803655E-4 です。 rand(); -- 戻り値は 0.7308781907032909 です。 rand(1);
ROUND
- 構文
double round(double <number>[, bigint <decimal_places>]) decimal round(decimal <number>[, bigint <decimal_places>]) - 説明
指定された小数点以下の桁数に丸めた数値を返します。
- パラメーター
- number: 必須。DOUBLE または DECIMAL 型の値。入力値が STRING または BIGINT 型の場合、計算前に DOUBLE 型の値に暗黙的に変換されます。入力値が別のデータ型の場合、エラーが返されます。
- decimal_places: オプション。値は BIGINT 型の定数です。値は指定された小数点以下の桁数に丸められます。別のデータ型の場合、エラーが返されます。このパラメーターを指定しない場合、数値は一の位に丸められます。デフォルト値は 0 です。説明 decimal_places の値は負にすることができます。負の値は、小数点から左に数えることを示し、小数部分は除外されます。 decimal_places が整数部分の長さを超える場合、0 が返されます。
- 戻り値
DOUBLE または DECIMAL 型の値が返されます。入力パラメーターが null に設定されている場合、null が返されます。
- 例
-- 戻り値は 125.0 です。 round(125.315); -- 戻り値は 125.3 です。 round(125.315, 1); -- 戻り値は 125.32 です。 round(125.315, 2); -- 戻り値は 125.315 です。 round(125.315, 3); -- 戻り値は -125.32 です。 round(-125.315, 2); -- 戻り値は 100.0 です。 round(123.345, -2); -- 戻り値は null です。 round(null); -- 戻り値は 123.345 です。 round(123.345, 4); -- 戻り値は 0.0 です。 round(123.345, -4);
SIN
- 構文
double sin(double <number>) decimal sin(decimal <number>) - 説明
ラジアン値である number の正弦を計算します。
- パラメーター
number: 必須。DOUBLE または DECIMAL 型の値。入力値が STRING または BIGINT 型の場合、計算前に DOUBLE 型の値に暗黙的に変換されます。入力値が別のデータ型の場合、エラーが返されます。
- 戻り値
DOUBLE または DECIMAL 型の値が返されます。入力パラメーターが null に設定されている場合、null が返されます。
- 例
-- 戻り値は -0.3048106211022167 です。 sin(60);
SINH
- 構文
double sinh(double <number>) decimal sinh(decimal <number>) - 説明
number の双曲線正弦を計算します。
- パラメーター
number: 必須。DOUBLE または DECIMAL 型の値。入力値が STRING または BIGINT 型の場合、計算前に DOUBLE 型の値に暗黙的に変換されます。入力値が別のデータ型の場合、エラーが返されます。
- 戻り値
DOUBLE または DECIMAL 型の値が返されます。入力パラメーターが null に設定されている場合、null が返されます。
- 例
-- 戻り値は 5.343237290762231E12 です。 sinh(30);
SQRT
- 構文
double sqrt(double <number>) decimal sqrt(decimal <number>) - 説明
number の平方根を計算します。
- パラメーター
number: 必須。入力値が DOUBLE または DECIMAL 型の場合、値は 0 より大きい必要があります。そうでない場合、例外が返されます。入力値が STRING または BIGINT 型の場合、計算前に DOUBLE 型の値に暗黙的に変換されます。入力値が別のデータ型の場合、エラーが返されます。
- 戻り値
DOUBLE または DECIMAL 型の値が返されます。入力パラメーターが null に設定されている場合、null が返されます。
- 例
-- 戻り値は 2.0 です。 sqrt(4);
TAN
- 構文
double tan(double <number>) decimal tan(decimal <number>) - 説明
ラジアン値である number の正接を計算します。
- パラメーター
number: 必須。DOUBLE または DECIMAL 型の値。入力値が STRING または BIGINT 型の場合、計算前に DOUBLE 型の値に暗黙的に変換されます。入力値が別のデータ型の場合、エラーが返されます。
- 戻り値
DOUBLE または DECIMAL 型の値が返されます。入力パラメーターが null に設定されている場合、null が返されます。
- 例
-- 戻り値は -6.405331196646276 です。 tan(30);
TANH
- 構文
double tanh(double <number>) decimal tanh(decimal <number>) - 説明
number の双曲線正接を計算します。
- パラメーター
number: 必須。DOUBLE または DECIMAL 型の値。入力値が STRING または BIGINT 型の場合、計算前に DOUBLE 型の値に暗黙的に変換されます。入力値が別のデータ型の場合、エラーが返されます。
- 戻り値
DOUBLE または DECIMAL 型の値が返されます。入力パラメーターが null に設定されている場合、null が返されます。
- 例
-- 戻り値は 1.0 です。 tanh(30);
TRUNC
- 構文
double trunc(double <number>[, bigint <decimal_places>]) decimal trunc(decimal <number>[, bigint <decimal_places>]) - 説明
number の入力値を、指定された小数点以下の桁数に切り捨てます。
- パラメーター
- number: 必須。DOUBLE または DECIMAL 型の値。入力値が STRING または BIGINT 型の場合、計算前に DOUBLE 型の値に暗黙的に変換されます。入力値が別のデータ型の場合、エラーが返されます。
- decimal_places: オプション。値は BIGINT 型の定数です。このパラメーターは、数値が切り捨てられる位置を指定します。値が別のデータ型の場合、BIGINT 型の値に変換されます。このパラメーターを指定しない場合、数値は一の位に切り捨てられます。説明 decimal_places は負の値にすることができ、これは数値が小数点から左に切り捨てられ、小数部分は除外されることを示します。 decimal_places が整数部分の長さを超える場合、0 が返されます。
- 戻り値
DOUBLE または DECIMAL 型の値が返されます。入力パラメーターが null に設定されている場合、null が返されます。
説明- DOUBLE 型の値が返される場合、戻り値が正しく表示されないことがあります。この問題はすべてのシステムに存在します。詳細については、この例の
trunc(125.815,1)をご参照ください。 - 数値は、指定された位置からゼロで埋められます。
- DOUBLE 型の値が返される場合、戻り値が正しく表示されないことがあります。この問題はすべてのシステムに存在します。詳細については、この例の
- 例
-- 戻り値は 125.0 です。 trunc(125.815,0); -- 戻り値は 125.80000000000001 です。 trunc(125.815,1); -- 戻り値は 125.81 です。 trunc(125.815,2); -- 戻り値は 125.815 です。 trunc(125.815,3); -- 戻り値は -125.81 です。 trunc(-125.815,2); -- 戻り値は 120.0 です。 trunc(125.815,-1); -- 戻り値は 100.0 です。 trunc(125.815,-2); -- 戻り値は 0.0 です。 trunc(125.815,-3); -- 戻り値は 123.345 です。 trunc(123.345,4); -- 戻り値は 0.0 です。 trunc(123.345,-4);
HEX
- 構文
string hex(bigint <number>) string hex(string <number>) string hex(binary <number>) - 説明
整数または文字列を 16 進数に変換します。
- パラメーター
number: 必須。 number が BIGINT 型の場合、16 進数の number が返されます。 number が STRING 型の場合、16 進数形式の文字列が返されます。
- 戻り値
- 入力値が 0 または null でない場合、STRING 型の値が返されます。
- 入力値が 0 の場合、0 が返されます。
- 入力値が null に設定されている場合、エラーが返されます。
- 例
-- 戻り値は 0 です。 hex(0); -- 戻り値は 616263 です。 hex('abc'); -- 戻り値は 11 です。 hex(17); -- 戻り値は 3137 です。 hex('17'); -- エラーが返されます。 hex(null);
UNHEX
- 構文
binary unhex(string <number>) - 説明
16 進数の文字列を文字列に変換します。
- パラメーター
number: 必須。値は 16 進数の文字列です。
- 戻り値
BINARY 型の値が返されます。入力値が 0 の場合、エラーが返されます。入力パラメーターが null に設定されている場合、null が返されます。
- 例
-- 戻り値は abc です。 unhex('616263'); -- 戻り値は abc です。 unhex(616263);
PI
- 構文
double pi() - 説明
π の値を計算します。
- 戻り値
DOUBLE 型の値が返されます。
- 例
-- 戻り値は 3.141592653589793 です。 pi();