このトピックでは、MaxCompute SQLでサポートされている数学関数について説明します。 このトピックでは、数学関数の構文、パラメーター、および例についても説明します。 ビジネス要件に基づいて数学関数を使用して、データ計算やデータ型変換などの操作を実行することを選択できます。
次の表に、MaxCompute SQLでサポートされている数学関数を示します。
関数 | 説明 |
絶対値を計算します。 | |
逆余弦を計算します。 | |
expr1とexpr2のアークタンジェントを計算します。 | |
アークサインを計算します。 | |
アークタンジェントを計算します。 | |
バイナリコードを計算します。 | |
キューブルートを計算します。 | |
数値を丸めて、最も近い整数を返します。 | |
ある数値システムから別の数値システムに数値を変換します。 | |
ピアソン相関係数を計算します。 | |
コサインを計算します。 | |
双曲線コサインを計算します。 | |
コタンジェントを計算します。 | |
ラジアン値を次数に変換します。 | |
eの値を計算します。 | |
指数値を計算します。 | |
階乗を計算します。 | |
配列内の要素をフィルターします。 | |
数値を丸めて、最も近い整数を返します。 | |
数値を指定した形式の文字列に変換します。 | |
整数または文字列を16進数に変換します。 | |
式の値がNaNかどうかをチェックします。 | |
自然対数を計算します。 | |
対数を計算します。 | |
基数が10の数の対数を計算します。 | |
基数が2の数の対数を計算します。 | |
式の負の値を返します。 | |
π の値を計算します。 | |
式の値を返します。 | |
値のn乗を計算します。 | |
次数をラジアン値に変換します。 | |
乱数を返します。 | |
指定した小数点以下の桁に丸めた値を返します。 | |
値を特定の桁数だけ左にシフトします。 | |
値を特定の数だけシフトします。 | |
符号なしの値を特定の桁数だけシフトします。 | |
入力値の符号を返します。 | |
正弦を計算します。 | |
双曲線の正弦を計算します。 | |
平方根を計算します。 | |
正接を計算します。 | |
双曲線正接を計算します。 | |
入力値を指定した小数点以下の桁まで切り捨てます。 | |
この関数は、16進数の文字列を文字列に変換します。 | |
特定の式の値が含まれるバケットのIDを返します。 |
剰余の計算に使用される演算子など、演算子の詳細については、「算術演算子」をご参照ください。
注意事項
MaxCompute V2.0は追加機能を提供します。 使用する関数にMaxCompute V2.0データ型エディションでサポートされている新しいデータ型が含まれている場合は、SETステートメントを実行してMaxCompute V2.0データ型エディションを有効にする必要があります。 新しいデータ型には、TINYINT、SMALLINT、INT、FLOAT、VARCHAR、TIMESTAMP、およびBINARYが含まれます。
セッションレベル: MaxCompute V2.0データ型エディションを使用するには、実行するsql文の前に
set odps. SQL. type.system.odps2=true;
を追加し、一緒にコミットして実行する必要があります。プロジェクトレベル: プロジェクトの所有者は、プロジェクトの要件に基づいて、プロジェクトのMaxCompute V2.0データ型エディションを有効にできます。 設定は10〜15分後に有効になります。 プロジェクトレベルでMaxCompute V2.0データ型エディションを有効にするには、次のコマンドを実行します。
setproject odps.sql.type.system.odps2=true;
setproject
の詳細については、「プロジェクト操作」をご参照ください。 プロジェクトレベルでMaxCompute V2.0データ型エディションを有効にする際の注意事項の詳細については、「データ型エディション」をご参照ください。
サンプルデータ
このセクションでは、数学関数の使用方法を理解するためのサンプルソースデータを提供します。 このトピックでは、mf_math_fun_tという名前のテーブルが作成され、データがテーブルに挿入されます。 サンプル文:
create table if not exists mf_math_fun_t(
int_data int,
bigint_data bigint,
double_data double,
decimal_data decimal,
float_data float,
string_data string
);
insert into mf_math_fun_t values
(null, -10, 0.525, 0.525BD, cast(0.525 as float), '10'),
(-20, null, -0.1, -0.1BD, cast(-0.1 as float), '-10'),
(0, -1, null, 20.45BD, cast(-1 as float), '30'),
(-40, 4, 0.89, null, cast(0.89 as float), '-30'),
(5, -50, -1, -1BD, null, '50'),
(-60, 6, 1.5, 1.5BD, cast(1.5 as float), '-50'),
(-1, -70, -7.5, -7.5BD, cast(-7.5 as float),null ),
(-80, 1, -10.2, -10.2BD, cast(-10.2 as float), '-1' ),
(9, -90, 2.58, 2.58BD, cast(2.58 as float), '0'),
(-100, 10, -5.8, -5.8BD, cast(-5.8 as float), '-90');
mf_math_fun_tテーブルからデータを照会します。 例:
select * from mf_math_fun_t;
-- The following result is returned:
+----------+-------------+-------------+--------------+------------+-------------+
| int_data | bigint_data | double_data | decimal_data | float_data | string_data |
+----------+-------------+-------------+--------------+------------+-------------+
| NULL | -10 | 0.525 | 0.525 | 0.525 | 10 |
| -20 | NULL | -0.1 | -0.1 | -0.1 | -10 |
| 0 | -1 | NULL | 20.45 | -1 | 30 |
| -40 | 4 | 0.89 | NULL | 0.89 | -30 |
| 5 | -50 | -1.0 | -1 | NULL | 50 |
| -60 | 6 | 1.5 | 1.5 | 1.5 | -50 |
| -1 | -70 | -7.5 | -7.5 | -7.5 | NULL |
| -80 | 1 | -10.2 | -10.2 | -10.2 | -1 |
| 9 | -90 | 2.58 | 2.58 | 2.58 | 0 |
| -100 | 10 | -5.8 | -5.8 | -5.8 | -90 |
+----------+-------------+-------------+--------------+------------+-------------+
ABS
構文
bigint|double|decimal abs(<number>)
説明
numberの絶対値を計算します。
パラメーター
number: 必須です。 値は、DOUBLE、BIGINT、またはDECIMAL型です。 入力値がSTRING型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
説明入力値がBIGINT型であり、BIGINT型の最大値より大きい場合、DOUBLE型の値が返されます。 しかしながら、精度が失われる可能性がある。
戻り値
戻り値のデータ型は、入力パラメーターのデータ型によって異なります。 戻り値は、次のルールによって異なります。
numberの値がDOUBLE、BIGINT、またはDECIMAL型の場合、同じ型の値が返されます。
numberの値がSTRING型の場合、DOUBLE型の値が返されます。
numberの値がnullに設定されている場合、nullが返されます。
例
静的データの例
-- The return value is null. select abs(null); -- The return value is 1. select abs(-1); -- The return value is 1.2. select abs(-1.2); -- The return value is 2.0. select abs("-2"); -- The return value is 1.2232083745629837 e32. select abs(122320837456298376592387456923748); -- Calculate the absolute value of the id field in tbl1. The following example shows the usage of an ABS function in SQL statements. Other built-in functions, except window functions and aggregate functions, are used in a similar way. select abs(id) from tbl1;
表データの例
サンプルデータに基づいて絶対値を計算します。 例:
select abs(bigint_data) as bigint_new, abs(double_data) as double_new, abs(decimal_data) as decimal_new, abs(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+------------+------------+-------------+------------+ | bigint_new | double_new | decimal_new | string_new | +------------+------------+-------------+------------+ | 10 | 0.525 | 0.525 | 10.0 | | NULL | 0.1 | 0.1 | 10.0 | | 1 | NULL | 20.45 | 30.0 | | 4 | 0.89 | NULL | 30.0 | | 50 | 1.0 | 1 | 50.0 | | 6 | 1.5 | 1.5 | 50.0 | | 70 | 7.5 | 7.5 | NULL | | 1 | 10.2 | 10.2 | 1.0 | | 90 | 2.58 | 2.58 | 0.0 | | 10 | 5.8 | 5.8 | 90.0 | +------------+------------+-------------+------------+
ACOS
構文
double|decimal acos(<number>)
説明
numberの逆余弦を計算します。
パラメーター
number: 必須です。 値の範囲は-1から1です。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
戻り値のデータ型は、入力パラメーターのデータ型によって異なります。 値は0から π の範囲です。 戻り値は、次のルールによって異なります。
numberの値がDOUBLE型またはDECIMAL型の場合、同じ型の値が返されます。
numberの値がSTRING型またはBIGINT型の場合、DOUBLE型の値が返されます。
numberの値が-1から1の範囲に入らない場合、nullが返されます。 Hive互換データ型エディションが有効になっている場合、NaNが返されます。
numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 0.5155940062460905. select acos("0.87"); -- The return value is 1.5707963267948966. select acos(0); -- The return value is null. select acos(null);
表データの例
サンプルデータに基づいて逆余弦を計算します。 例:
select acos(bigint_data) as bigint_new, acos(double_data) as double_new, acos(decimal_data) as decimal_new, acos(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+-------------------+--------------------+--------------------+---------------------+ | bigint_new | double_new | decimal_new | string_new | +-------------------+--------------------+--------------------+---------------------+ | NULL | 1.0180812136981134 | 1.0180812136981134 | NULL | | NULL | 1.6709637479564565 | 1.6709637479564565 | NULL | | 3.141592653589793 | NULL | NULL | NULL | | NULL | 0.4734511572720662 | NULL | NULL | | NULL | 3.141592653589793 | 3.141592653589793 | NULL | | NULL | NULL | NULL | NULL | | NULL | NULL | NULL | NULL | | 0.0 | NULL | NULL | 3.141592653589793 | | NULL | NULL | NULL | 1.5707963267948966 | | NULL | NULL | NULL | NULL | +-------------------+--------------------+--------------------+---------------------+
ATAN2
構文
double atan2(<expr1>, <expr2>)
説明
expr1とexpr2のアークタンジェントを計算します。
パラメーター
expr1: 必須です。 DOUBLE型の値。 入力値がSTRING型、BIGINT型、またはDECIMAL型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
expr2: 必須です。 DOUBLE型の値。 入力値がSTRING型、BIGINT型、またはDECIMAL型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
DOUBLE型の値が返されます。 戻り値の範囲は
-π/2から π/2
です。 expr1またはexpr2の値がnullの場合、nullが返されます。例
-- The return value is 0.0. select atan2(0, 0);
ASIN
構文
double|decimal asin(<number>)
説明
numberのアークサインを計算します。
パラメーター
number: 必須です。 値の範囲は-1から1です。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
戻り値のデータ型は、入力パラメーターのデータ型によって異なります。 戻り値の範囲は
-π/2から π/2
です。 戻り値は、次のルールによって異なります。numberの値がDOUBLE型またはDECIMAL型の場合、同じ型の値が返されます。
numberの値がSTRING型またはBIGINT型の場合、DOUBLE型の値が返されます。
numberの値が-1から1の範囲に入らない場合、nullが返されます。 Hive互換データ型エディションが有効になっている場合、NaNが返されます。
numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 1.5707963267948966. select asin(1); -- The return value is 1.5707963267948966. select asin(-1); -- The return value is null. select asin(null);
表データの例
サンプルデータに基づいてアークサインを計算します。 例:
select asin(bigint_data) as bigint_new, asin(double_data) as double_new, asin(decimal_data) as decimal_new, asin(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+--------------------+---------------------+---------------------+---------------------+ | bigint_new | double_new | decimal_new | string_new | +--------------------+---------------------+---------------------+---------------------+ | NULL | 0.5527151130967832 | 0.5527151130967832 | NULL | | NULL | -0.1001674211615598 | -0.1001674211615598 | NULL | | -1.5707963267948966| NULL | NULL | NULL | | NULL | 1.0973451695228305 | NULL | NULL | | NULL | -1.5707963267948966 | -1.5707963267948966 | NULL | | NULL | NULL | NULL | NULL | | NULL | NULL | NULL | NULL | | 1.5707963267948966 | NULL | NULL | -1.5707963267948966 | | NULL | NULL | NULL | 0.0 | | NULL | NULL | NULL | NULL | +--------------------+---------------------+---------------------+---------------------+
ATAN
構文
double atan(<number>)
説明
numberのアークタンジェントを計算します。
パラメーター
number: 必須です。 DOUBLE型の値。 入力値がSTRING型、BIGINT型、またはDECIMAL型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
DOUBLE型の値が返されます。 戻り値の範囲は
-π/2から π/2
です。 numberの値がnullの場合、nullが返されます。例
静的データの例
-- The return value is 0.7853981633974483. select atan(1); -- The return value is -0.7853981633974483. select atan(-1); -- The return value is null. select atan(null);
表データの例
サンプルデータに基づいてアークタンジェントを計算します。 例:
select atan(bigint_data) as bigint_new, atan(double_data) as double_new, atan(decimal_data) as decimal_new, atan(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+---------------------+----------------------+----------------------+---------------------+ | bigint_new | double_new | decimal_new | string_new | +---------------------+----------------------+----------------------+---------------------+ | -1.4711276743037347 | 0.483447001567199 | 0.483447001567199 | 1.4711276743037347 | | NULL | -0.09966865249116204 | -0.09966865249116204 | -1.4711276743037347 | | -0.7853981633974483 | NULL | 1.521935491607842 | 1.5374753309166493 | | 1.3258176636680326 | 0.7272626879966904 | NULL | -1.5374753309166493 | | -1.550798992821746 | -0.7853981633974483 | -0.7853981633974483 | 1.550798992821746 | | 1.4056476493802699 | 0.982793723247329 | 0.982793723247329 | -1.550798992821746 | | -1.5565115842075 | -1.4382447944982226 | -1.4382447944982226 | NULL | | 0.7853981633974483 | -1.473069419436178 | -1.473069419436178 | -0.7853981633974483 | | -1.5596856728972892 | 1.2010277920014796 | 1.2010277920014796 | 0.0 | | 1.4711276743037347 | -1.4000611153196139 | -1.4000611153196139 | -1.5596856728972892 | +---------------------+----------------------+----------------------+---------------------+
BIN
構文
string bin(<number>)
説明
numberのバイナリコードを計算します。 この関数は、MaxCompute V2.0の追加関数です。
パラメーター
number: 必須です。 値は、BIGINT、INT、SMALLINT、またはTINYINT型です。
戻り値
STRING型の値が返されます。 戻り値は、次のルールによって異なります。
numberの値がBIGINT、INT、SMALLINT、またはTINYINT型でない場合、エラーが返されます。
numberの値が0の場合、0が返されます。
numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 0. select bin(0); -- The return value is null. select bin(null); -- The return value is 1100. select bin(12);
表データの例
サンプルデータに基づいて、int_data列とbigint_data列の値のバイナリコードを計算します。 例:
-- Enable the MaxCompute V2.0 data type edition. Commit this command along with the SQL statement. set odps.sql.type.system.odps2=true; select bin(int_data) as int_new, bin(bigint_data) as bigint_new from mf_math_fun_t;
次の応答が返されます。
+----------------------------------------------------------------------------+------------------------------------------------------------------+ | int_new | bigint_new | +----------------------------------------------------------------------------+------------------------------------------------------------------+ | NULL | 1111111111111111111111111111111111111111111111111111111111110110 | | 1111111111111111111111111111111111111111111111111111111111101100 | NULL | | 0 | 1111111111111111111111111111111111111111111111111111111111111111 | | 1111111111111111111111111111111111111111111111111111111111011000 | 100 | | 101 | 1111111111111111111111111111111111111111111111111111111111001110 | | 1111111111111111111111111111111111111111111111111111111111000100 | 110 | | 1111111111111111111111111111111111111111111111111111111111111111 | 1111111111111111111111111111111111111111111111111111111110111010 | | 1111111111111111111111111111111111111111111111111111111110110000 | 1 | | 1001 | 1111111111111111111111111111111111111111111111111111111110100110 | | 1111111111111111111111111111111111111111111111111111111110011100 | 1010 | +----------------------------------------------------------------------------+------------------------------------------------------------------+
CBRT
構文
double cbrt(<number>)
説明
numberの立方根を計算します。 この関数は、MaxCompute V2.0の追加関数です。
パラメーター
number: 必須です。 値は、BIGINT、INT、SMALLINT、TINYINT、DOUBLE、FLOAT、またはSTRING型です。
戻り値
DOUBLE型の値が返されます。 戻り値は、次のルールによって異なります。
numberの値がBIGINT、INT、SMALLINT、TINYINT、DOUBLE、FLOAT、またはSTRING型でない場合、エラーが返されます。
numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 2.0. select cbrt(8); -- The return value is null. select cbrt(null);
表データの例
サンプルデータに基づいて、decimal_data列を除く列の値の平方根を計算します。 例:
-- Enable the MaxCompute V2.0 data type edition. Commit this command along with the SQL statement. set odps.sql.type.system.odps2=true; select cbrt(int_data) as int_new, cbrt(bigint_data) as bigint_new, cbrt(double_data) as double_new, cbrt(float_data) as float_new, cbrt(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+---------------------+---------------------+----------------------+---------------------+---------------------+ | int_new | bigint_new | double_new | float_new | string_new | +---------------------+---------------------+----------------------+---------------------+---------------------+ | NULL | -2.1544346900318834 | 0.806714323012272 | 0.8067143108004823 | 2.1544346900318834 | | -2.7144176165949063 | NULL | -0.46415888336127786 | -0.46415888566678 | -2.1544346900318834 | | 0.0 | -1.0 | NULL | -1.0 | 3.107232505953859 | | -3.4199518933533937 | 1.5874010519681996 | 0.9619001716077046 | 0.961900166454112 | -3.107232505953859 | | 1.7099759466766968 | -3.6840314986403864 | -1.0 | NULL | 3.6840314986403864 | | -3.9148676411688634 | 1.8171205928321394 | 1.1447142425533317 | 1.1447142425533317 | -3.6840314986403864 | | -1.0 | -4.121285299808557 | -1.9574338205844317 | -1.9574338205844317 | NULL | | -4.308869380063767 | 1.0 | -2.168702885250197 | -2.1687028717323127 | -1.0 | | 2.080083823051904 | -4.481404746557165 | 1.3715339700741747 | 1.3715339565548288 | 0.0 | | -4.641588833612778 | 2.1544346900318834 | -1.7967017791430528 | -1.7967017988380907 | -4.481404746557165 | +---------------------+---------------------+----------------------+---------------------+---------------------+
CEIL
構文
bigint ceil(<value>)
説明
valueを丸めて、最も近い整数を返します。
パラメーター
value: 必須です。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
BIGINT型の値が返されます。 numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 2. select ceil(1.1); -- The return value is -1. select ceil(-1.1); -- The return value is null. select ceil(null);
表データの例
サンプルデータに基づいて数値を切り上げます。 例:
select ceil(bigint_data) as bigint_new, ceil(double_data) as double_new, ceil(decimal_data) as decimal_new, ceil(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+------------+------------+-------------+------------+ | bigint_new | double_new | decimal_new | string_new | +------------+------------+-------------+------------+ | -10 | 1 | 1 | 10 | | NULL | 0 | 0 | -10 | | -1 | NULL | 21 | 30 | | 4 | 1 | NULL | -30 | | -50 | -1 | -1 | 50 | | 6 | 2 | 2 | -50 | | -70 | -7 | -7 | NULL | | 1 | -10 | -10 | -1 | | -90 | 3 | 3 | 0 | | 10 | -5 | -5 | -90 | +------------+------------+-------------+------------+
CONV
構文
string conv(<input>, bigint <from_base>, bigint <to_base>)
説明
ある数値システムから別の数値システムに数値を変換します。
パラメーター
input: 必須です。 値は変換する整数で、STRING型です。 入力値がBIGINT型またはDOUBLE型の場合、計算前に値は暗黙的にSTRING型の値に変換されます。
_baseから _base: 必須です。 これらのパラメータの値は10進数である。 値は、2、8、10、または16とすることができる。 入力値がSTRING型またはDOUBLE型の場合、計算前にBIGINT型の値に暗黙的に変換されます。
戻り値
STRING型の値が返されます。 戻り値は、次のルールによって異なります。
input、from_base、またはto_baseの値がnullの場合、nullが返されます。
変換プロセスは64ビット精度で実行されます。 オーバーフローが発生した場合は、nullが返されます。
inputの値が負の値の場合、nullが返されます。 入力の値が10進数の場合は、数値系の変換の前に整数に変換されます。 小数部は省略されます。
例
静的データの例
-- The return value is 12. select conv('1100', 2, 10); -- The return value is C. select conv('1100', 2, 16); -- The return value is 171. select conv('ab', 16, 10); -- The return value is AB. select conv('ab', 16, 16); -- The return value is null. select conv('1100', null, 10);
表データの例
サンプルデータに基づいて数値をバイナリ値に変換します。 例:
select conv(bigint_data,10,2) as bigint_new, conv(double_data,10,2) as double_new, conv(decimal_data,10,2) as decimal_new, conv(string_data,10,2) as string_new from mf_math_fun_t;
次の応答が返されます。
+------------+------------+-------------+------------+ | bigint_new | double_new | decimal_new | string_new | +------------+------------+-------------+------------+ | NULL | 0 | 0 | 1010 | | NULL | NULL | NULL | NULL | | NULL | NULL | 10100 | 11110 | | 100 | 0 | NULL | NULL | | NULL | NULL | NULL | 110010 | | 110 | 1 | 1 | NULL | | NULL | NULL | NULL | NULL | | 1 | NULL | NULL | NULL | | NULL | 10 | 10 | 0 | | 1010 | NULL | NULL | NULL | +------------+------------+-------------+------------+
CORR
構文
double corr(<col1>, <col2>)
説明
2列のデータのピアソン相関係数を計算します。 この関数は、MaxCompute V2.0の追加関数です。
パラメーター
col1およびcol2: 必須です。 ピアソン相関係数が計算される2つの列の名前。 値は、DOUBLE、BIGINT、INT、SMALLINT、TINYINT、FLOAT、またはDECIMALタイプです。 col1列とcol2列のデータは、異なるデータ型にすることができます。
戻り値
DOUBLE型の値が返されます。 入力列の行内にnull値がある場合、その行は計算に関与しません。
例
サンプルデータに基づいて、データのdouble_data列とfloat_data列のピアソン相関係数を計算します。 例:
select corr(double_data,float_data) from mf_math_fun_t;
戻り値は1.0です。
COS
構文
double|decimal cos(<number>)
説明
ラジアン値であるnumberの余弦を計算します。
パラメーター
number: 必須です。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
DOUBLEまたはDECIMAL型の値が返されます。 戻り値は、次のルールによって異なります。
numberの値がDOUBLE型またはDECIMAL型の場合、同じ型の値が返されます。
numberの値がSTRING型またはBIGINT型の場合、DOUBLE型の値が返されます。
numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 2.6794896585028633e-8. select cos(3.1415926/2); -- The return value is -0.9999999999999986. select cos(3.1415926); -- The return value is null. select cos(null);
表データの例
サンプルデータに基づいてコサインを計算します。 例:
select cos(bigint_data) as bigint_new, cos(double_data) as double_new, cos(decimal_data) as decimal_new, cos(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+---------------------+--------------------+----------------------+---------------------+ | bigint_new | double_new | decimal_new | string_new | +---------------------+--------------------+----------------------+---------------------+ | -0.8390715290764524 | 0.8653239416229412 | 0.8653239416229412 | -0.8390715290764524 | | NULL | 0.9950041652780258 | 0.9950041652780258 | -0.8390715290764524 | | 0.5403023058681398 | NULL | -0.02964340851507803 | 0.15425144988758405 | | -0.6536436208636119 | 0.6294120265736969 | NULL | 0.15425144988758405 | | 0.9649660284921133 | 0.5403023058681398 | 0.5403023058681398 | 0.9649660284921133 | | 0.960170286650366 | 0.0707372016677029 | 0.0707372016677029 | 0.9649660284921133 | | 0.6333192030862999 | 0.3466353178350258 | 0.3466353178350258 | NULL | | 0.5403023058681398 | -0.7142656520272003| -0.7142656520272003 | 0.5403023058681398 | | -0.4480736161291701 | -0.8464080412157756| -0.8464080412157756 | 1.0 | | -0.8390715290764524 | 0.8855195169413189 | 0.8855195169413189 | -0.4480736161291701 | +---------------------+--------------------+----------------------+---------------------+
COSH
構文
double|decimal cosh(<number>)
説明
numberの双曲線余弦を計算します。
パラメーター
number: 必須です。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
DOUBLEまたはDECIMAL型の値が返されます。 戻り値は、次のルールによって異なります。
numberの値がDOUBLE型またはDECIMAL型の場合、同じ型の値が返されます。
numberの値がSTRING型またはBIGINT型の場合、DOUBLE型の値が返されます。
numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 2.5091784169949913. select cosh(3.1415926/2); -- The return value is null. select cosh(null);
表データの例
サンプルデータに基づいて双曲線余弦を計算します。 例:
select cosh(bigint_data) as bigint_new, cosh(double_data) as double_new, cosh(decimal_data) as decimal_new, cosh(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+-----------------------+--------------------+--------------------+----------------------+ | bigint_new | double_new | decimal_new | string_new | +-----------------------+--------------------+--------------------+----------------------+ | 11013.232920103324 | 1.1410071063729532 | 1.1410071063729532 | 11013.232920103324 | | NULL | 1.0050041680558035 | 1.0050041680558035 | 11013.232920103324 | | 1.5430806348152437 | NULL | 380445243.96844625 | 5343237290762.231 | | 27.308232836016487 | 1.42289270202111 | NULL | 5343237290762.231 | | 2.592352764293536e21 | 1.5430806348152437 | 1.5430806348152437 | 2.592352764293536e21 | | 201.7156361224559 | 2.352409615243247 | 2.352409615243247 | 2.592352764293536e21 | | 1.2577193354595834e30 | 904.0214837702166 | 904.0214837702166 | NULL | | 1.5430806348152437 | 13451.593055733929 | 13451.593055733929 | 1.5430806348152437 | | 6.102016471589204e38 | 6.636456081840602 | 6.636456081840602 | 1.0 | | 11013.232920103324 | 165.151293732197 | 165.151293732197 | 6.102016471589204e38 | +-----------------------+--------------------+--------------------+----------------------+
COT
構文
double|decimal cot(<number>)
説明
ラジアン値であるnumberのコタンジェントを計算します。
パラメーター
number: 必須です。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
DOUBLEまたはDECIMAL型の値が返されます。 戻り値は、次のルールによって異なります。
numberの値がDOUBLE型またはDECIMAL型の場合、同じ型の値が返されます。
numberの値がSTRING型またはBIGINT型の場合、DOUBLE型の値が返されます。
numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 2.6794896585028643E-8. select cot(3.1415926/2); -- The return value is null. select cot(null);
表データの例
サンプルデータに基づいてコタンジェントを計算します。 例:
selectcot(bigint_data)asbigint_new,cot(double_data)asdouble_new,cot(decimal_data)asdecimal_new,cot(string_data)asstring_newfrommf_math_fun_t;
次の応答が返されます。
+-----------------------+--------------------+--------------------+----------------------+ | bigint_new | double_new | decimal_new | string_new | +-----------------------+--------------------+--------------------+----------------------+ | -1.54235104535692 | 1.7264594764178474 | 1.7264594764178474 | 1.54235104535692 | | NULL | -9.966644423259238 | -9.966644423259238 | -1.54235104535692 | | -0.6420926159343308 | NULL | -0.02965644140592836| -0.15611995216165922| | 0.8636911544506167 | 0.8099792954471944 | NULL | 0.15611995216165922 | | 3.6778144508505695 | -0.6420926159343308| -0.6420926159343308| -3.6778144508505695 | | -3.436353004180128 | 0.07091484430265245| 0.07091484430265245| 3.6778144508505695 | | -0.8183574478651038 | -0.36954725630901636| -0.36954725630901636| NULL | | 0.6420926159343308 | -1.0205622016180353 | -1.0205622016180353 | -0.6420926159343308| | 0.5012027833801532 | -1.5893944776331337 | -1.5893944776331337 | 1.0 | | 1.54235104535692 | 1.9059736612916494 | 1.9059736612916494 | 0.5012027833801532 | +-----------------------+---------------------+---------------------+--------------------+
DEGREES
構文
double degrees(<number>)
説明
ラジアン値を次数に変換します。
パラメーター
number: 必須です。 DOUBLE、BIGINT、INT、SMALLINT、TINYINT、FLOAT、DECIMAL、またはSTRING型の値。 この関数は、MaxCompute V2.0の追加関数です。
戻り値
DOUBLE型の値が返されます。 numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 90.0. select degrees(1.5707963267948966); -- The return value is 0.0. select degrees(0); -- The return value is null. select degrees(null);
表データの例
サンプルデータに基づいて、すべての列に対応するすべての度を取得します。 例:
-- Enable the MaxCompute V2.0 data type edition. Commit this command along with the SQL statement. set odps.sql.type.system.odps2=true; select degrees(int_data) as int_new, degrees(bigint_data) as bigint_new, degrees(double_data) as double_new, degrees(decimal_data) as decimal_new, degrees(float_data) as float_new, degrees(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+---------------------+---------------------+---------------------+---------------------+---------------------+---------------------+ | int_new | bigint_new | double_new | decimal_new | float_new | string_new | +---------------------+---------------------+---------------------+---------------------+---------------------+---------------------+ | NULL | -572.9577951308232 | 30.08028424436822 | 30.08028424436822 | 30.080282878330387 | 572.9577951308232 | | -1145.9155902616465 | NULL | -5.729577951308232 | -5.729577951308232 | -5.729578036685597 | -572.9577951308232 | | 0.0 | -57.29577951308232 | NULL | 1171.6986910425335 | -57.29577951308232 | 1718.8733853924698 | | -2291.831180523293 | 229.1831180523293 | 50.99324376664326 | NULL | 50.99324294702057 | -1718.8733853924698 | | 286.4788975654116 | -2864.7889756541163 | -57.29577951308232 | -57.29577951308232 | NULL | 2864.7889756541163 | | -3437.7467707849396 | 343.77467707849394 | 85.94366926962348 | 85.94366926962348 | 85.94366926962348 | -2864.7889756541163 | | -57.29577951308232 | -4010.7045659157625 | -429.71834634811745 | -429.71834634811745 | -429.71834634811745 | NULL | | -4583.662361046586 | 57.29577951308232 | -584.4169510334397 | -584.4169510334397 | -584.416940105137 | -57.29577951308232 | | 515.662015617741 | -5156.620156177409 | 147.8231111437524 | 147.8231111437524 | 147.82310677243132 | 0.0 | | -5729.5779513082325 | 572.9577951308232 | -332.31552117587745 | -332.31552117587745 | -332.31553210418014 | -5156.620156177409 | +---------------------+---------------------+---------------------+---------------------+---------------------+---------------------+
E
構文
double e()
説明
e
の値を計算します。 この関数は、MaxCompute V2.0の追加関数です。戻り値
DOUBLE型の値が返されます。
例
-- The return value is 2.718281828459045. select e();
EXP
構文
double|decimal exp(<number>)
説明
numberの指数値を計算します。
パラメーター
number: 必須です。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
DOUBLEまたはDECIMAL型の値が返されます。 戻り値は、次のルールによって異なります。
numberの値がDOUBLE型またはDECIMAL型の場合、同じ型の値が返されます。
numberの値がSTRING型またはBIGINT型の場合、DOUBLE型の値が返されます。
numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 4.810477252069109. select exp(3.1415926/2); -- The return value is null. select exp(null);
表データの例
サンプルデータに基づいて指数値を計算します。 例:
select exp(bigint_data) as bigint_new, exp(double_data) as double_new, exp(decimal_data) as decimal_new, exp(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+-------------------------+-------------------------+-------------------------+-------------------------+ | bigint_new | double_new | decimal_new | string_new | +-------------------------+-------------------------+-------------------------+-------------------------+ | 0.000045399929762484854 | 1.6904588483790914 | 1.6904588483790914 | 22026.465794806718 | | NULL | 0.9048374180359595 | 0.9048374180359595 | 0.000045399929762484854 | | 0.36787944117144233 | NULL | 760890487.9368925 | 10686474581524.463 | | 54.598150033144236 | 2.4351296512898744 | NULL | 9.357622968840175e-14 | | 1.9287498479639178e-22 | 0.36787944117144233 | 0.36787944117144233 | 5.184705528587072e21 | | 403.4287934927351 | 4.4816890703380645 | 4.4816890703380645 | 1.9287498479639178e-22 | | 3.975449735908647e-31 | 0.0005530843701478336 | 0.0005530843701478336 | NULL | | 2.718281828459045 | 0.000037170318684126734 | 0.000037170318684126734 | 0.36787944117144233 | | 8.194012623990515e-40 | 13.197138159658358 | 13.197138159658358 | 1.0 | | 22026.465794806718 | 0.0030275547453758153 | 0.0030275547453758153 | 8.194012623990515e-40 | +-------------------------+-------------------------+-------------------------+-------------------------+
FACTORIAL
構文
bigint factorial(<number>)
説明
numberの階乗を計算します。 この関数は、MaxCompute V2.0の追加関数です。
パラメーター
number: 必須です。 値はBIGINT、INT、SMALLINT、またはTINYINTタイプで、0から20の範囲です。
戻り値
BIGINT型の値が返されます。 戻り値は、次のルールによって異なります。
numberの値が0の場合、1が返されます。
numberの値がnullの場合、または0から20の範囲に該当しない値の場合は、nullが返されます。
例
静的データの例
-- The return value is 120. 5!=5*4*3*2*1=120 select factorial(5); -- The return value is 1. select factorial(0); -- The return value is null. select factorial(null);
表データの例
サンプルデータに基づいてint_data列とbigint_data列の値の階乗を計算します。 例:
-- Enable the MaxCompute V2.0 data type edition. Commit this command along with the SQL statement. set odps.sql.type.system.odps2=true; select factorial(int_data) as int_new, factorial(bigint_data) as bigint_new from mf_math_fun_t;
次の応答が返されます。
+------------+------------+ | int_new | bigint_new | +------------+------------+ | NULL | NULL | | NULL | NULL | | 1 | NULL | | NULL | 24 | | 120 | NULL | | NULL | 720 | | NULL | NULL | | NULL | 1 | | 362880 | NULL | | NULL | 3628800 | +------------+------------+
フィルター
構文
array<T> filter(array<T> <a>, function<T,boolean> <func>)
パラメーター
a: 必須です。 このパラメーターは、配列を指定します。
array<T>
のT
は、配列内の要素のデータ型を指定します。 要素は任意のデータ型にすることができます。func: 必須です。 このパラメーターには、Array aの要素をフィルター処理するために使用される組み込み関数、ユーザー定義関数、または式を指定します。 値は、配列aの要素と同じデータ型である必要があります。 関数または式の出力結果はBOOLEAN型です。
戻り値
ARRAY型の値が返されます。
例
-- The return value is [2, 3]. select filter(array(1, 2, 3), x -> x > 1);
説明この例では、ハイフンとクロージングアングルブラケット (->) の組み合わせが使用されています。 Lambda関数でハイフンとクロージングアングルブラケット
(->)
の組み合わせを使用する方法の詳細については、「Lambda関数」をご参照ください。
FLOOR
構文
bigint floor(<number>)
説明
numberを丸め、numberの値以下の最も近い整数を返します。
パラメーター
number: 必須です。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
BIGINT型の値が返されます。 numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 1. select floor(1.2); -- The return value is 0. select floor(0.1); -- The return value is -2. select floor(-1.2); -- The return value is -1. select floor(-0.1); -- The return value is 0. select floor(0.0); -- The return value is 0. select floor(-0.0); -- The return value is null. select floor(null);
表データの例
サンプルデータに基づいて数値を切り下げます。 例:
select floor(bigint_data) as bigint_new, floor(double_data) as double_new, floor(decimal_data) as decimal_new, floor(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+------------+------------+-------------+------------+ | bigint_new | double_new | decimal_new | string_new | +------------+------------+-------------+------------+ | -10 | 0 | 0 | 10 | | NULL | -1 | -1 | -10 | | -1 | NULL | 20 | 30 | | 4 | 0 | NULL | -30 | | -50 | -1 | -1 | 50 | | 6 | 1 | 1 | -50 | | -70 | -8 | -8 | NULL | | 1 | -11 | -11 | -1 | | -90 | 2 | 2 | 0 | | 10 | -6 | -6 | -90 | +------------+------------+-------------+------------+
FORMAT_NUMBER
構文
string format_number(float|double|decimal <expr1>, <expr2>)
説明
数値を指定した形式の文字列に変換します。 この関数は、MaxCompute V2.0の追加関数です。
パラメーター
expr1: 必須です。 このパラメータは、フォーマットする式を指定します。 DOUBLE、BIGINT、INT、SMALLINT、TINYINT、FLOAT、DECIMAL、またはSTRING型の値。
expr2: 必須です。 このパラメーターは、変換後の式の形式を指定します。 保持する小数点以下の桁数を指定できます。 また、
#,###,###.#
と同様の形式で表現することもできます。
戻り値
STRING型の値が返されます。 戻り値は、次のルールによって異なります。
expr2が0より大きい場合、値は小数点以下の指定された場所に丸められます。
expr2が0に等しい場合、値には小数点または小数部はありません。
expr2が0未満または340を超える場合、エラーが返されます。
expr1またはexpr2の値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 5.230. select format_number(5.230134523424545456,3); -- The return value is 12,332.123. select format_number(12332.123456, '#,###,###,###.###'); -- The return value is null. select format_number(null,3);
表データの例
サンプルデータに基づいて、すべての列の値を指定した小数点以下の桁数に保持します。 例:
-- Enable the MaxCompute V2.0 data type edition. Commit this command along with the SQL statement. set odps.sql.type.system.odps2=true; select format_number(int_data, 1) as int_new, format_number(bigint_data, 1) as bigint_new, format_number(double_data, 2) as double_new, format_number(decimal_data, 1) as decimal_new, format_number(float_data, 0) as float_new, format_number(string_data, 1) as string_new from mf_math_fun_t;
次の応答が返されます。
+---------+------------+------------+-------------+-----------+------------+ | int_new | bigint_new | double_new | decimal_new | float_new | string_new | +---------+------------+------------+-------------+-----------+------------+ | NULL | -10.0 | 0.53 | 0.5 | 1 | 10.0 | | -20.0 | NULL | -0.10 | -0.1 | -0 | -10.0 | | 0.0 | -1.0 | NULL | 20.5 | -1 | 30.0 | | -40.0 | 4.0 | 0.89 | NULL | 1 | -30.0 | | 5.0 | -50.0 | -1.00 | -1.0 | NULL | 50.0 | | -60.0 | 6.0 | 1.50 | 1.5 | 2 | -50.0 | | -1.0 | -70.0 | -7.50 | -7.5 | -8 | NULL | | -80.0 | 1.0 | -10.20 | -10.2 | -10 | -1.0 | | 9.0 | -90.0 | 2.58 | 2.6 | 3 | 0.0 | | -100.0 | 10.0 | -5.80 | -5.8 | -6 | -90.0 | +---------+------------+------------+-------------+-----------+------------+
HEX
構文
string hex(<number>)
説明
数値または文字列を16進数に変換します。 この関数は、MaxCompute V2.0の追加関数です。
パラメーター
number: 必須です。 DOUBLE、BIGINT、INT、SMALLINT、TINYINT、FLOAT、DECIMAL、またはSTRING型の値。
戻り値
STRING型の値が返されます。 戻り値は、次のルールによって異なります。
numberの値が0またはnullでない場合、STRING型の値が返されます。
numberの値が0の場合、0が返されます。
numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 0. select hex(0); -- The return value is 616263. select hex('abc'); -- The return value is 11. select hex(17); -- The return value is 3137. select hex('17'); -- An error is returned. select hex(null);
表データの例
サンプルデータに基づいて、すべての列の数値を16進数に変換します。 例:
-- Enable the MaxCompute V2.0 data type edition. Commit this command along with the SQL statement. set odps.sql.type.system.odps2=true; select hex(int_data) as int_new, hex(bigint_data) as bigint_new, hex(double_data) as double_new, hex(decimal_data) as decimal_new, hex(float_data) as float_new, hex(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+------------------+------------------+------------+-------------+------------+------------+ | int_new | bigint_new | double_new | decimal_new | float_new | string_new | +------------------+------------------+------------+-------------+------------+------------+ | NULL | FFFFFFFFFFFFFFF6 | 302E353235 | 302E353235 | 302E353235 | 3130 | | FFFFFFFFFFFFFFEC | NULL | 2D302E31 | 2D302E31 | 2D302E31 | 2D3130 | | 0 | FFFFFFFFFFFFFFFF | NULL | 32302E3435 | 2D31 | 3330 | | FFFFFFFFFFFFFFD8 | 4 | 302E3839 | NULL | 302E3839 | 2D3330 | | 5 | FFFFFFFFFFFFFFCE | 2D312E30 | 2D31 | NULL | 3530 | | FFFFFFFFFFFFFFC4 | 6 | 312E35 | 312E35 | 312E35 | 2D3530 | | FFFFFFFFFFFFFFFF | FFFFFFFFFFFFFFBA | 2D372E35 | 2D372E35 | 2D372E35 | NULL | | FFFFFFFFFFFFFFB0 | 1 | 2D31302E32 | 2D31302E32 | 2D31302E32 | 2D31 | | 9 | FFFFFFFFFFFFFFA6 | 322E3538 | 322E3538 | 322E3538 | 30 | | FFFFFFFFFFFFFF9C | A | 2D352E38 | 2D352E38 | 2D352E38 | 2D3930 | +------------------+------------------+------------+-------------+------------+------------+
ISNAN
構文
boolean isnan(<expr>)
説明
exprの値がNaNかどうかをチェックします。
パラメーター
expr: 必須です。 DOUBLE型の値。 入力値がSTRING型、BIGINT型、またはDECIMAL型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
exprの値がNaNの場合、Trueが返されます。 それ以外の場合は、falseが返されます。
exprの値がnullの場合、Falseが返されます。
例
-- The return value is False. SELECT isnan(100.1);
LN
構文
double|decimal ln(<number>)
説明
numberの自然対数を計算します。
パラメーター
number: 必須です。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
DOUBLEまたはDECIMAL型の値が返されます。 戻り値は、次のルールによって異なります。
numberの値がDOUBLE型またはDECIMAL型の場合、同じ型の値が返されます。
numberの値がSTRING型またはBIGINT型の場合、DOUBLE型の値が返されます。
numberの値が負の値または0の場合、nullが返されます。
numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 1.144729868791239. select ln(3.1415926); -- The return value is null. select ln(null);
表データの例
サンプルデータに基づいて自然対数値を計算します。 例:
select ln(bigint_data) as bigint_new, ln(double_data) as double_new, ln(decimal_data) as decimal_new, ln(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+--------------------+----------------------+---------------------+---------------------+ | bigint_new | double_new | decimal_new | string_new | +--------------------+----------------------+---------------------+---------------------+ | NULL | -0.6443570163905132 | -0.6443570163905132 | 2.302585092994046 | | NULL | NULL | NULL | NULL | | NULL | NULL | 3.017982882488811 | 3.4011973816621555 | | 1.3862943611198906 | -0.11653381625595151 | NULL | NULL | | NULL | NULL | NULL | 3.912023005428146 | | 1.791759469228055 | 0.4054651081081644 | 0.4054651081081644 | NULL | | NULL | NULL | NULL | NULL | | 0.0 | NULL | NULL | NULL | | NULL | 0.9477893989335261 | 0.9477893989335261 | NULL | | 2.302585092994046 | NULL | NULL | NULL | +--------------------+----------------------+---------------------+---------------------+
LOG
構文
double log(<base>, <x>)
説明
基数がbaseであるxの対数を計算します。
パラメーター
base: 必須です。 ベース番号。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
x: 必須です。 対数が計算される値。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
DOUBLE型の値が返されます。 戻り値は、次のルールによって異なります。
baseまたはxの値がnullの場合、nullが返されます。
baseまたはxの値が負の値または0の場合、nullが返されます。
baseの値が1の場合、nullが返されます。 値1はゼロによる除算を引き起こす。
例
静的データの例
-- The return value is 4.0. select log(2, 16); -- The return value is null. select log(2, null);
表データの例
サンプルデータに基づいて、基数が2の列の対数値を計算します。 例:
select log(2,bigint_data) as bigint_new, log(2,double_data) as double_new, log(2,decimal_data) as decimal_new, log(2,string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+--------------------+----------------------+--------------------+--------------------+ | bigint_new | double_new | decimal_new | string_new | +--------------------+----------------------+--------------------+--------------------+ | NULL | -0.929610672108602 | -0.929610672108602 | 3.3219280948873626 | | NULL | NULL | NULL | NULL | | NULL | NULL | 4.354028938054387 | 4.906890595608519 | | 2.0 | -0.16812275880832692 | NULL | NULL | | NULL | NULL | NULL | 5.643856189774724 | | 2.584962500721156 | 0.5849625007211562 | 0.5849625007211562 | NULL | | NULL | NULL | NULL | NULL | | 0.0 | NULL | NULL | NULL | | NULL | 1.3673710656485296 | 1.3673710656485296 | NULL | | 3.3219280948873626 | NULL | NULL | NULL | +--------------------+----------------------+--------------------+--------------------+
LOG10
構文
double log10(<number>)
説明
基数が10のnumberの対数を計算します。 この関数は、MaxCompute V2.0の追加関数です。
パラメーター
number: 必須です。 DOUBLE、BIGINT、INT、SMALLINT、TINYINT、FLOAT、DECIMAL、またはSTRING型の値。
戻り値
DOUBLE型の値が返されます。 numberの値が0、負の値、またはnullの場合、nullが返されます。
例
静的データの例
-- The return value is null. select log10(null); -- The return value is null. select log10(0); -- The return value is 0.9030899869919435. select log10(8);
表データの例
サンプルデータに基づいて、基数が10のすべての列の値の対数を計算します。 例:
-- Enable the MaxCompute V2.0 data type edition. Commit this command along with the SQL statement. set odps.sql.type.system.odps2=true; select log10(int_data) as int_new, log10(bigint_data) as bigint_new, log10(double_data) as double_new, log10(decimal_data) as decimal_new, log10(float_data) as float_new, log10(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+--------------------+--------------------+---------------------+---------------------+-----------------------+--------------------+ | int_new | bigint_new | double_new | decimal_new | float_new | string_new | +--------------------+--------------------+---------------------+---------------------+-----------------------+--------------------+ | NULL | NULL | -0.2798406965940431 | -0.2798406965940431 | -0.27984071631668606 | 1.0 | | NULL | NULL | NULL | NULL | NULL | NULL | | NULL | NULL | NULL | 1.3106933123433606 | NULL | 1.4771212547196624 | | NULL | 0.6020599913279623 | -0.0506099933550872 | NULL | -0.050610000335573106 | NULL | | 0.6989700043360187 | NULL | NULL | NULL | NULL | 1.6989700043360185 | | NULL | 0.7781512503836435 | 0.17609125905568124 | 0.17609125905568124 | 0.17609125905568124 | NULL | | NULL | NULL | NULL | NULL | NULL | NULL | | NULL | 0.0 | NULL | NULL | NULL | NULL | | 0.9542425094393249 | NULL | 0.4116197059632301 | 0.4116197059632301 | 0.411619693120579 | NULL | | NULL | 1.0 | NULL | NULL | NULL | NULL | +--------------------+--------------------+---------------------+---------------------+-----------------------+--------------------+
LOG2
構文
double log2(<number>)
説明
基数が2のnumberの対数を計算します。 この関数は、MaxCompute V2.0の追加関数です。
パラメーター
number: 必須です。 DOUBLE、BIGINT、INT、SMALLINT、TINYINT、FLOAT、DECIMAL、またはSTRING型の値。
戻り値
DOUBLE型の値が返されます。 numberの値が0、負の値、またはnullの場合、nullが返されます。
例
静的データの例
-- The return value is null. select log2(null); -- The return value is null. select log2(0); -- The return value is 3.0. select log2(8);
表データの例
サンプルデータに基づいて、基数が2のすべての列の対数を計算します。 例:
-- Enable the MaxCompute V2.0 data type edition. Commit this command along with the SQL statement. set odps.sql.type.system.odps2=true; select log2(int_data) as int_new, log2(bigint_data) as bigint_new, log2(double_data) as double_new, log2(decimal_data) as decimal_new, log2(float_data) as float_new, log2(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+--------------------+--------------------+----------------------+--------------------+----------------------+--------------------+ | int_new | bigint_new | double_new | decimal_new | float_new | string_new | +--------------------+--------------------+----------------------+--------------------+----------------------+--------------------+ | NULL | NULL | -0.929610672108602 | -0.929610672108602 | -0.9296107376258038 | 3.3219280948873626 | | NULL | NULL | NULL | NULL | NULL | NULL | | NULL | NULL | NULL | 4.354028938054387 | NULL | 4.906890595608519 | | NULL | 2.0 | -0.16812275880832692 | NULL | -0.16812278199699915 | NULL | | 2.321928094887362 | NULL | NULL | NULL | NULL | 5.643856189774724 | | NULL | 2.584962500721156 | 0.5849625007211562 | 0.5849625007211562 | 0.5849625007211562 | NULL | | NULL | NULL | NULL | NULL | NULL | NULL | | NULL | 0.0 | NULL | NULL | NULL | NULL | | 3.1699250014423126 | NULL | 1.3673710656485296 | 1.3673710656485296 | 1.367371022986166 | NULL | | NULL | 3.3219280948873626 | NULL | NULL | NULL | NULL | +--------------------+--------------------+----------------------+--------------------+----------------------+--------------------+
NEGATIVE
構文
TINYINT|SMALLINT|INT|BIGINT|DOUBLE|DECIMAL negative(TINYINT|SMALLINT|INT|BIGINT|DOUBLE|DECIMAL <expr>)
説明
exprの負の値を返します。
パラメーター
expr: 必須です。 この値は、TINYINT、SMALLINT、INT、BIGINT、DOUBLE、またはDECIMAL型の式です。
戻り値
exprの負の値が返されます。
例
-- The return value is -1. SELECT negative(1);
PI
構文
double pi()
説明
π の値を計算します。 この関数は、MaxCompute V2.0の追加関数です。
戻り値
DOUBLE型の値が返されます。
例
-- The return value is 3.141592653589793. select pi();
POSITIVE
構文
TINYINT|SMALLINT|INT|BIGINT|DOUBLE|DECIMAL positive(TINYINT|SMALLINT|INT|BIGINT|DOUBLE|DECIMAL <expr>)
説明
exprの値を返します。
パラメーター
expr: 必須です。 この値は、TINYINT、SMALLINT、INT、BIGINT、DOUBLE、またはDECIMAL型の式です。
戻り値
exprの値が返されます。
例
-- The return value is 1. SELECT positive(1);
POW
構文
double|decimal pow(<x>, <y>)
説明
xのy乗、つまり
x ^ y
を計算します。パラメーター
x: 必須です。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
y: 必須です。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
DOUBLEまたはDECIMAL型の値が返されます。 戻り値は、次のルールによって異なります。
xまたはyがDOUBLEまたはDECIMAL型の場合、同じ型の値が返されます。
xまたはyがSTRING型またはBIGINT型の場合、DOUBLE型の値が返されます。
xまたはyの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 65536.0. select pow(2, 16); -- The return value is null. select pow(2, null);
表データの例
サンプルデータに基づいて、列の値の2乗を計算します。 例:
select pow(bigint_data, 2) as bigint_new, pow(double_data, 2) as double_new, pow(decimal_data, 2) as decimal_new, pow(string_data, 2) as string_new from mf_math_fun_t;
次の応答が返されます。
+------------+----------------------+----------------------+------------+ | bigint_new | double_new | decimal_new | string_new | +------------+----------------------+----------------------+------------+ | 100.0 | 0.275625 | 0.275625 | 100.0 | | NULL | 0.010000000000000002 | 0.010000000000000002 | 100.0 | | 1.0 | NULL | 418.2025 | 900.0 | | 16.0 | 0.7921 | NULL | 900.0 | | 2500.0 | 1.0 | 1.0 | 2500.0 | | 36.0 | 2.25 | 2.25 | 2500.0 | | 4900.0 | 56.25 | 56.25 | NULL | | 1.0 | 104.03999999999999 | 104.03999999999999 | 1.0 | | 8100.0 | 6.6564000000000005 | 6.6564000000000005 | 0.0 | | 100.0 | 33.64 | 33.64 | 8100.0 | +------------+----------------------+----------------------+------------+
RADIANS
構文
double radians(<number>)
説明
次数をラジアン値に変換します。 この関数は、MaxCompute V2.0の追加関数です。
パラメーター
number: 必須です。 DOUBLE、BIGINT、INT、SMALLINT、TINYINT、FLOAT、DECIMAL、またはSTRING型の値。
戻り値
DOUBLE型の値が返されます。 numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 1.5707963267948966. select radians(90); -- The return value is 0.0. select radians(0); -- The return value is null. select radians(null);
表データの例
サンプルデータに基づいて、すべての列の値をラジアン値に変換します。 例:
-- Enable the MaxCompute V2.0 data type edition. Commit this command along with the SQL statement. set odps.sql.type.system.odps2=true; select radians(int_data) as int_new, radians(bigint_data) as bigint_new, radians(double_data) as double_new, radians(decimal_data) as decimal_new, radians(float_data) as float_new, radians(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+-----------------------+-----------------------+------------------------+------------------------+------------------------+-----------------------+ | int_new | bigint_new | double_new | decimal_new | float_new | string_new | +-----------------------+-----------------------+------------------------+------------------------+------------------------+-----------------------+ | NULL | -0.17453292519943295 | 0.00916297857297023 | 0.00916297857297023 | 0.009162978156851308 | 0.17453292519943295 | | -0.3490658503988659 | NULL | -0.0017453292519943296 | -0.0017453292519943296 | -0.0017453292780017621 | -0.17453292519943295 | | 0.0 | -0.017453292519943295 | NULL | 0.3569198320328404 | -0.017453292519943295 | 0.5235987755982988 | | -0.6981317007977318 | 0.06981317007977318 | 0.015533430342749534 | NULL | 0.015533430093078181 | -0.5235987755982988 | | 0.08726646259971647 | -0.8726646259971648 | -0.017453292519943295 | -0.017453292519943295 | NULL | 0.8726646259971648 | | -1.0471975511965976 | 0.10471975511965977 | 0.02617993877991494 | 0.02617993877991494 | 0.02617993877991494 | -0.8726646259971648 | | -0.017453292519943295 | -1.2217304763960306 | -0.1308996938995747 | -0.1308996938995747 | -0.1308996938995747 | NULL | | -1.3962634015954636 | 0.017453292519943295 | -0.17802358370342158 | -0.17802358370342158 | -0.17802358037447025 | -0.017453292519943295 | | 0.15707963267948966 | -1.5707963267948966 | 0.045029494701453704 | 0.045029494701453704 | 0.04502949336987316 | 0.0 | | -1.7453292519943295 | 0.17453292519943295 | -0.10122909661567112 | -0.10122909661567112 | -0.10122909994462247 | -1.5707963267948966 | +-----------------------+-----------------------+------------------------+------------------------+------------------------+-----------------------+
RAND
構文
double rand(bigint <seed>)
説明
DOUBLE型の乱数を返します。 値の範囲は0から1です。
パラメーター
seed: オプション。 値はBIGINT型です。 このパラメーターは、乱数を生成する際の開始点を決定するランダムシードを指定します。
説明seedを使用して、乱数シーケンスを決定できます。 seedが決定された後、この関数の戻り値は固定されます。 実行環境が同じで、シード値が変更されない場合、戻り値は同じになります。 異なる結果を返す必要がある場合は、シード値を変更する必要があります。
SQL文の前に次のパラメーターを追加できます。デフォルト値は
false
です。set odps.sql.executionengine.enable.rand.time.seed=true | false;
パラメーター値がfalseの場合、RAND関数は現在のInstanceIdを乱数として使用してシードを初期化します。これにより、関数のべき等性が保証されます。
パラメータ値がtrueの場合、RAND関数は現在のシステム時間をシードを初期化するための乱数として使用します。 しかし、RAND関数は、もはやべき等ではなく、再実行時に異なる結果をもたらすので、シャッフルキーとして使用することはできない。
戻り値
DOUBLE型の値が返されます。
例
-- The return value is 4.7147460303803655E-4. select rand(); -- The return value is 0.7308781907032909. select rand(1);
ROUND
構文
double|decimal round(<number>[, bigint <decimal_places>])
説明
指定された小数点以下の桁に丸めた数値を返します。
パラメーター
number: 必須です。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
decimal_places: オプション。 値はBIGINT型の定数です。 このパラメータは、数値を四捨五入する小数点以下の桁を指定します。 このパラメーターが指定されていない場合、数値は1つの場所に丸められます。 デフォルト値は 0 です。
説明deciment_placesの値は負にすることができます。 負の値は、小数点から左にカウントすることを示し、小数部は除外される。 deciment_placesが整数部分の長さを超える場合、0が返されます。
戻り値
DOUBLEまたはDECIMAL型の値が返されます。 戻り値は、次のルールによって異なります。
numberの値がDOUBLE型またはDECIMAL型の場合、同じ型の値が返されます。
numberの値がSTRING型またはBIGINT型の場合、DOUBLE型の値が返されます。
deciment_placesがBIGINT型でない場合、エラーが返されます。
numberまたはdeciment_placesの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 125.0. select round(125.315); -- The return value is 125.3. select round(125.315, 1); -- The return value is 125.32. select round(125.315, 2); -- The return value is 125.315. select round(125.315, 3); -- The return value is -125.32. select round(-125.315, 2); -- The return value is 100.0. select round(123.345, -2); -- The return value is null. select round(null); -- The return value is 123.345. select round(123.345, 4); -- The return value is 0.0. select round(123.345, -4);
表データの例
サンプルデータに基づいて、列内で指定した小数点以下の桁に丸められた数値を返します。 例:
select round(bigint_data, 1) as bigint_new, round(double_data, 2) as double_new, round(decimal_data, 1) as decimal_new, round(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+------------+------------+-------------+------------+ | bigint_new | double_new | decimal_new | string_new | +------------+------------+-------------+------------+ | -10.0 | 0.53 | 0.5 | 10.0 | | NULL | -0.1 | -0.1 | -10.0 | | -1.0 | NULL | 20.5 | 30.0 | | 4.0 | 0.89 | NULL | -30.0 | | -50.0 | -1.0 | -1 | 50.0 | | 6.0 | 1.5 | 1.5 | -50.0 | | -70.0 | -7.5 | -7.5 | NULL | | 1.0 | -10.2 | -10.2 | -1.0 | | -90.0 | 2.58 | 2.6 | 0.0 | | 10.0 | -5.8 | -5.8 | -90.0 | +------------+------------+-------------+------------+
SHIFTLEFT
構文
int shiftleft(tinyint|smallint|int <number1>, int <number2>) bigint shiftleft(bigint <number1>, int <number2>)
説明
値を特定の桁数だけ左にシフトします (<<) 。 この関数は、MaxCompute V2.0の追加関数です。
パラメーター
number1: 必須です。 値は、TINYINT、SMALLINT、INT、またはBIGINT型です。
number2: 必須です。 値はINT型です。
戻り値
INTまたはBIGINT型の値が返されます。 戻り値は、次のルールによって異なります。
number1の値がTINYINT、SMALLINT、INT、またはBIGINT型でない場合、エラーが返されます。
number2の値がINT型でない場合、エラーが返されます。
number1またはnumber2の値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 4. The following statement shifts the binary value of 1 two places to the left (1<<2,0001 shifted to be 0100). select shiftleft(1,2); -- The return value is 32. The following statement shifts the binary value of 4 three places to the left (4<<3,0100 shifted to be 100000). select shiftleft(4,3); -- The return value is null. select shiftleft(null,2);
表データの例
サンプルデータに基づいて、int_data列とbigint_data列の番号を特定の桁数だけシフトします。 例:
-- Enable the MaxCompute V2.0 data type edition. Commit this command along with the SQL statement. set odps.sql.type.system.odps2=true; select shiftleft(int_data, 1) as int_new, shiftleft(bigint_data, 1) as bigint_new from mf_math_fun_t;
次の応答が返されます。
+---------+------------+ | int_new | bigint_new | +---------+------------+ | NULL | -20 | | -40 | NULL | | 0 | -2 | | -80 | 8 | | 10 | -100 | | -120 | 12 | | -2 | -140 | | -160 | 2 | | 18 | -180 | | -200 | 20 | +---------+------------+
SHIFTRIGHT
構文
int shiftright(tinyint|smallint|int <number1>, int <number2>) bigint shiftright(bigint <number1>, int <number2>)
説明
値を特定の桁数 (>>) だけシフトします。 この関数は、MaxCompute V2.0の追加関数です。
パラメーター
number1: 必須です。 値は、TINYINT、SMALLINT、INT、またはBIGINT型です。
number2: 必須です。 値はINT型です。
戻り値
INTまたはBIGINT型の値が返されます。 戻り値は、次のルールによって異なります。
number1の値がTINYINT、SMALLINT、INT、またはBIGINT型でない場合、エラーが返されます。
number2の値がINT型でない場合、エラーが返されます。
number1またはnumber2の値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 1. The following statement shifts the binary value of 4 two places to the right (4>>2,0100 shifted to be 0001). select shiftright(4,2); -- The return value is 4. The following statement shifts the binary value of 32 three places to the right (32>>3,100000 shifted to be 0100). select shiftright(32,3); -- The return value is null. select shiftright(null,3);
表データの例
サンプルデータに基づいて、int_data列とbigint_data列の番号を特定の桁数だけシフトします。 例:
-- Enable the MaxCompute V2.0 data type edition. Commit this command along with the SQL statement. set odps.sql.type.system.odps2=true; select shiftright(int_data, 1) as int_new, shiftright(bigint_data, 1) as bigint_new from mf_math_fun_t;
次の応答が返されます。
+---------+------------+ | int_new | bigint_new | +---------+------------+ | NULL | -5 | | -10 | NULL | | 0 | -1 | | -20 | 2 | | 2 | -25 | | -30 | 3 | | -1 | -35 | | -40 | 0 | | 4 | -45 | | -50 | 5 | +---------+------------+
SHIFTRIGHTUNSIGNED
構文
int shiftrightunsigned(tinyint|smallint|int <number1>, int <number2>) bigint shiftrightunsigned(bigint <number1>, int <number2>)
説明
符号なしの値を特定の桁数 (>>>) だけシフトします。 この関数は、MaxCompute V2.0の追加関数です。
パラメーター
number1: 必須です。 値は、TINYINT、SMALLINT、INT、またはBIGINT型の整数です。
number2: 必須です。 値はINT型の整数です。
戻り値
INTまたはBIGINT型の値が返されます。 戻り値は、次のルールによって異なります。
number1の値がTINYINT、SMALLINT、INT、またはBIGINT型でない場合、エラーが返されます。
number2の値がINT型でない場合、エラーが返されます。
number1またはnumber2の値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 2. The following statement shifts the binary unsigned value of 8 two places to the right (8>>>2,1000 shifted to be 0010). select shiftrightunsigned(8,2); -- The return value is 1073741820. The following statement shifts the binary value of -14 two places to the right (-14>>>2, 11111111 11111111 11111111 11110010 shifted to be 00111111 11111111 11111111 11111100). select shiftrightunsigned(-14,2); -- The return value is null. select shiftrightunsigned(-14,null);
表データの例
int_data列とbigint_data列の符号なしの値を、サンプルデータに基づいて特定の桁数だけ右にシフトします。 例:
-- Enable the MaxCompute V2.0 data type edition. Commit this command along with the SQL statement. set odps.sql.type.system.odps2=true; select shiftrightunsigned(int_data, 1) as int_new, shiftrightunsigned(bigint_data, 1) as bigint_new from mf_math_fun_t;
次の応答が返されます。
+------------+---------------------+ | int_new | bigint_new | +------------+---------------------+ | NULL | 9223372036854775803 | | 2147483638 | NULL | | 0 | 9223372036854775807 | | 2147483628 | 2 | | 2 | 9223372036854775783 | | 2147483618 | 3 | | 2147483647 | 9223372036854775773 | | 2147483608 | 0 | | 4 | 9223372036854775763 | | 2147483598 | 5 | +------------+---------------------+
SIGN
構文
double sign(<number>)
説明
入力値の符号を返します。 この関数は、MaxCompute V2.0の追加関数です。
パラメーター
number: 必須です。 DOUBLE、BIGINT、INT、SMALLINT、TINYINT、FLOAT、DECIMAL、またはSTRING型の値。
戻り値
DOUBLE型の値が返されます。 戻り値は、次のルールによって異なります。
numberの値が正の値の場合、1.0が返されます。
numberの値が負の値の場合、-1.0が返されます。
numberの値が0の場合、0.0が返されます。
numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is -1.0. select sign(-2.5); -- The return value is 1.0. select sign(2.5); -- The return value is 0.0. select sign(0); -- The return value is null. select sign(null);
表データの例
サンプルデータに基づいて、すべての列の数字の符号を取得します。 例:
-- Enable the MaxCompute V2.0 data type edition. Commit this command along with the SQL statement. set odps.sql.type.system.odps2=true; select sign(int_data) as int_new, sign(bigint_data) as bigint_new, sign(double_data) as double_new, sign(decimal_data) as decimal_new, sign(float_data) as float_new, sign(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+------------+------------+------------+-------------+------------+------------+ | int_new | bigint_new | double_new | decimal_new | float_new | string_new | +------------+------------+------------+-------------+------------+------------+ | NULL | -1.0 | 1.0 | 1 | 1.0 | 1.0 | | -1.0 | NULL | -1.0 | -1 | -1.0 | -1.0 | | 0.0 | -1.0 | NULL | 1 | -1.0 | 1.0 | | -1.0 | 1.0 | 1.0 | NULL | 1.0 | -1.0 | | 1.0 | -1.0 | -1.0 | -1 | NULL | 1.0 | | -1.0 | 1.0 | 1.0 | 1 | 1.0 | -1.0 | | -1.0 | -1.0 | -1.0 | -1 | -1.0 | NULL | | -1.0 | 1.0 | -1.0 | -1 | -1.0 | -1.0 | | 1.0 | -1.0 | 1.0 | 1 | 1.0 | 0.0 | | -1.0 | 1.0 | -1.0 | -1 | -1.0 | -1.0 | +------------+------------+------------+-------------+------------+------------+
SIN
構文
double|decimal sin(<number>)
説明
ラジアン値である数の正弦を計算します。
パラメーター
number: 必須です。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
DOUBLEまたはDECIMAL型の値が返されます。 戻り値は、次のルールによって異なります。
numberの値がDOUBLE型またはDECIMAL型の場合、同じ型の値が返されます。
numberの値がSTRING型またはBIGINT型の場合、DOUBLE型の値が返されます。
numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is -0.3048106211022167. select sin(60); -- The return value is null. select sin(null);
表データの例
サンプルデータに基づいて列の値の正弦を計算します。 例:
select sin(bigint_data) as bigint_new, sin(double_data) as double_new, sin(decimal_data) as decimal_new, sin(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+----------------------+----------------------+----------------------+----------------------+ | bigint_new | double_new | decimal_new | string_new | +----------------------+----------------------+----------------------+----------------------+ | 0.5440211108893698 | 0.5012130046737979 | 0.5012130046737979 | -0.5440211108893698 | | NULL | -0.09983341664682815 | -0.09983341664682815 | 0.5440211108893698 | | -0.8414709848078965 | NULL | 0.9995605376022045 | -0.9880316240928618 | | -0.7568024953079282 | 0.7770717475268238 | NULL | 0.9880316240928618 | | 0.26237485370392877 | -0.8414709848078965 | -0.8414709848078965 | -0.26237485370392877 | | -0.27941549819892586 | 0.9974949866040544 | 0.9974949866040544 | 0.26237485370392877 | | -0.7738906815578891 | -0.9379999767747389 | -0.9379999767747389 | NULL | | 0.8414709848078965 | 0.6998746875935423 | 0.6998746875935423 | -0.8414709848078965 | | -0.8939966636005579 | 0.5325349075556212 | 0.5325349075556212 | 0.0 | | -0.5440211108893698 | 0.46460217941375737 | 0.46460217941375737 | -0.8939966636005579 | +----------------------+----------------------+----------------------+----------------------+
SINH
構文
double|decimal sinh(<number>)
説明
numberの双曲線正弦を計算します。
パラメーター
number: 必須です。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
DOUBLEまたはDECIMAL型の値が返されます。 戻り値は、次のルールによって異なります。
numberの値がDOUBLE型またはDECIMAL型の場合、同じ型の値が返されます。
numberの値がSTRING型またはBIGINT型の場合、DOUBLE型の値が返されます。
numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 5.343237290762231E12. select sinh(30); -- The return value is null. select sinh(null);
表データの例
サンプルデータに基づいて、列内の値の双曲線正弦を計算します。 例:
select sinh(bigint_data) as bigint_new, sinh(double_data) as double_new, sinh(decimal_data) as decimal_new, sinh(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+------------------------+----------------------+----------------------+-----------------------+ | bigint_new | double_new | decimal_new | string_new | +------------------------+----------------------+----------------------+-----------------------+ | -11013.232874703393 | 0.5494517420061382 | 0.5494517420061382 | 11013.232874703393 | | NULL | -0.10016675001984403 | -0.10016675001984403 | -11013.232874703393 | | -1.1752011936438014 | NULL | 380445243.96844625 | 5343237290762.231 | | 27.28991719712775 | 1.0122369492687646 | NULL | -5343237290762.231 | | -2.592352764293536e21 | -1.1752011936438014 | -1.1752011936438014 | 2.592352764293536e21 | | 201.71315737027922 | 2.1292794550948173 | 2.1292794550948173 | -2.592352764293536e21 | | -1.2577193354595834e30 | -904.0209306858466 | -904.0209306858466 | NULL | | 1.1752011936438014 | -13451.593018563612 | -13451.593018563612 | -1.1752011936438014 | | -6.102016471589204e38 | 6.560682077817757 | 6.560682077817757 | 0.0 | | 11013.232874703393 | -165.1482661774516 | -165.1482661774516 | -6.102016471589204e38 | +------------------------+----------------------+----------------------+-----------------------+
SQRT
構文
double|decimal sqrt(<number>)
説明
numberの平方根を計算します。
パラメーター
number: 必須です。 値はDOUBLEまたはDECIMAL型です。 値は0より大きくなければなりません。 値が0未満の場合、nullが返されます。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
DOUBLEまたはDECIMAL型の値が返されます。 戻り値は、次のルールによって異なります。
numberの値がDOUBLE型またはDECIMAL型の場合、同じ型の値が返されます。
numberの値がSTRING型またはBIGINT型の場合、DOUBLE型の値が返されます。
numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 2.0. select sqrt(4); -- The return value is null. select sqrt(null);
表データの例
サンプルデータに基づいて、列内の値の平方根を計算します。 例:
select sqrt(bigint_data) as bigint_new, sqrt(double_data) as double_new, sqrt(decimal_data) as decimal_new, sqrt(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+--------------------+--------------------+-------------------+--------------------+ | bigint_new | double_new | decimal_new | string_new | +--------------------+--------------------+-------------------+--------------------+ | NULL | 0.724568837309472 | 0.724568837309472 | 3.1622776601683795 | | NULL | NULL | NULL | NULL | | NULL | NULL | 4.522167621838006 | 5.477225575051661 | | 2.0 | 0.9433981132056604 | NULL | NULL | | NULL | NULL | NULL | 7.0710678118654755 | | 2.449489742783178 | 1.224744871391589 | 1.224744871391589 | NULL | | NULL | NULL | NULL | NULL | | 1.0 | NULL | NULL | NULL | | NULL | 1.606237840420901 | 1.606237840420901 | 0.0 | | 3.1622776601683795 | NULL | NULL | NULL | +--------------------+--------------------+-------------------+--------------------+
TAN
構文
double|decimal tan(<number>)
説明
ラジアン値であるnumberのタンジェントを計算します。
パラメーター
number: 必須です。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
DOUBLEまたはDECIMAL型の値が返されます。 戻り値は、次のルールによって異なります。
numberの値がDOUBLE型またはDECIMAL型の場合、同じ型の値が返されます。
numberの値がSTRING型またはBIGINT型の場合、DOUBLE型の値が返されます。
numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is -6.405331196646276. select tan(30); -- The return value is null. select tan(null);
表データの例
サンプルデータに基づいて、列内の値のタンジェントを計算します。 例:
select tan(bigint_data) as bigint_new, tan(double_data) as double_new, tan(decimal_data) as decimal_new, tan(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+----------------------+----------------------+----------------------+----------------------+ | bigint_new | double_new | decimal_new | string_new | +----------------------+----------------------+----------------------+----------------------+ | -0.6483608274590866 | 0.5792200822893652 | 0.5792200822893652 | 0.6483608274590866 | | NULL | -0.10033467208545055 | -0.10033467208545055 | -0.6483608274590866 | | -1.5574077246549023 | NULL | -33.71948732190433 | -6.405331196646276 | | 1.1578212823495775 | 1.2345994590490046 | NULL | 6.405331196646276 | | 0.27190061199763077 | -1.5574077246549023 | -1.5574077246549023 | -0.27190061199763077 | | -0.29100619138474915 | 14.101419947171719 | 14.101419947171719 | 0.27190061199763077 | | -1.2219599181369434 | -2.706013866772691 | -2.706013866772691 | NULL | | 1.5574077246549023 | -0.979852083895097 | -0.979852083895097 | -1.5574077246549023 | | 1.995200412208242 | -0.6291704256385503 | -0.6291704256385503 | 0.0 | | 0.6483608274590866 | 0.5246662219468002 | 0.5246662219468002 | 1.995200412208242 | +----------------------+----------------------+----------------------+----------------------+
TANH
構文
double|decimal tanh(<number>)
説明
numberの双曲線正接を計算します。
パラメーター
number: 必須です。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
戻り値
DOUBLEまたはDECIMAL型の値が返されます。 戻り値は、次のルールによって異なります。
numberの値がDOUBLE型またはDECIMAL型の場合、同じ型の値が返されます。
numberの値がSTRING型またはBIGINT型の場合、DOUBLE型の値が返されます。
numberの値がnullの場合、nullが返されます。
例
静的データの例
-- The return value is 1.0. select tanh(30); -- The return value is null. select tanh(null);
表データの例
サンプルデータに基づいて、列内の値の双曲線正接を計算します。 例:
select tanh(bigint_data) as bigint_new, tanh(double_data) as double_new, tanh(decimal_data) as decimal_new, tanh(string_data) as string_new from mf_math_fun_t;
次の応答が返されます。
+---------------------+----------------------+----------------------+---------------------+ | bigint_new | double_new | decimal_new | string_new | +---------------------+----------------------+----------------------+---------------------+ | -0.9999999958776927 | 0.48154979836430806 | 0.48154979836430806 | 0.9999999958776927 | | NULL | -0.09966799462495582 | -0.09966799462495582 | -0.9999999958776927 | | -0.7615941559557649 | NULL | 1.0 | 1.0 | | 0.999329299739067 | 0.7113937318189625 | NULL | -1.0 | | -1.0 | -0.7615941559557649 | -0.7615941559557649 | 1.0 | | 0.9999877116507956 | 0.9051482536448664 | 0.9051482536448664 | -1.0 | | -1.0 | -0.9999993881955461 | -0.9999993881955461 | NULL | | 0.7615941559557649 | -0.9999999972367348 | -0.9999999972367348 | -0.7615941559557649 | | -1.0 | 0.9885821584459533 | 0.9885821584459533 | 0.0 | | 0.9999999958776927 | -0.9999816679925603 | -0.9999816679925603 | -1.0 | +---------------------+----------------------+----------------------+---------------------+
TRUNC
構文
double|decimal trunc(<number>[, bigint <decimal_places>])
説明
numberの入力値を指定した小数点以下の桁まで切り捨てます。
説明Hive互換データ型エディションが使用されている場合、この関数は数学関数ではありません。 日付値を変換するために使用されます。 関連する日付関数の詳細については、「DATETRUNC」をご参照ください。 ビジネス要件に基づいて、MaxComputeプロジェクトのデータ型エディションを設定する必要があります。 データ型のエディションの詳細については、「データ型のエディション」をご参照ください。
パラメーター
number: 必須です。 DOUBLEまたはDECIMAL型の値。 入力値がSTRING型またはBIGINT型の場合は、計算前に暗黙的にDOUBLE型の値に変換されます。
decimal_places: オプション。 値はBIGINT型の定数です。 このパラメータは、数値が切り捨てられる位置を指定します。 このパラメーターが指定されていない場合、番号は1の場所に切り捨てられます。 deciment_placesは負の値にすることができます。これは、数値が小数点から左に切り捨てられ、小数部分が除外されることを示します。 deciment_placesが整数部分の長さを超える場合、0が返されます。
戻り値
DOUBLEまたはDECIMAL型の値が返されます。 戻り値は、次のルールによって異なります。
numberの値がDOUBLE型またはDECIMAL型の場合、同じ型の値が返されます。
numberの値がSTRING型またはBIGINT型の場合、DOUBLE型の値が返されます。
deciment_placesがBIGINT型でない場合、エラーが返されます。
numberまたはdeciment_placesの値がnullの場合、nullが返されます。
説明DOUBLE型の値が返されると, 戻り値が正しく表示されないことがあります。 この問題はすべてのシステムに存在します。 詳細については、この例の「
trunc(125.815,1)
」をご参照ください。数は指定された位置からゼロで埋められます。
例
静的データの例
-- The return value is 125.0. select trunc(125.815,0); -- The return value is 125.80000000000001. select trunc(125.815,1); -- The return value is 125.81. select trunc(125.815,2); -- The return value is 125.815. select trunc(125.815,3); -- The return value is -125.81. select trunc(-125.815,2); -- The return value is 120.0. select trunc(125.815,-1); -- The return value is 100.0. select trunc(125.815,-2); -- The return value is 0.0. select trunc(125.815,-3); -- The return value is 123.345. select trunc(123.345,4); -- The return value is 0.0. select trunc(123.345,-4); -- The return value is null. select trunc(123.345,null);
表データの例
サンプルデータに基づいて、列内の数値を指定した小数点以下の桁まで切り捨てます。 例:
select trunc(bigint_data, 1) as bigint_new, trunc(double_data,1) as double_new, trunc(decimal_data, 1) as decimal_new, trunc(string_data, 1) as string_new from mf_math_fun_t;
次の応答が返されます。
+------------+---------------------+-------------+------------+ | bigint_new | double_new | decimal_new | string_new | +------------+---------------------+-------------+------------+ | -10.0 | 0.5 | 0.5 | 10.0 | | NULL | -0.1 | -0.1 | -10.0 | | -1.0 | NULL | 20.4 | 30.0 | | 4.0 | 0.8 | NULL | -30.0 | | -50.0 | -1.0 | -1 | 50.0 | | 6.0 | 1.5 | 1.5 | -50.0 | | -70.0 | -7.5 | -7.5 | NULL | | 1.0 | -10.200000000000001 | -10.2 | -1.0 | | -90.0 | 2.5 | 2.5 | 0.0 | | 10.0 | -5.800000000000001 | -5.8 | -90.0 | +------------+---------------------+-------------+------------+
UNHEX
構文
binary unhex(string <number>)
説明
16進数の文字列を文字列に変換します。 この関数は、MaxCompute V2.0の追加関数です。
パラメーター
number: 必須です。 値は16進数の文字列です。
戻り値
BINARY型の値が返されます。 戻り値は、次のルールによって異なります。
numberの値が0の場合、エラーが返されます。
numberの値がnullの場合、nullが返されます。
例
-- The return value is abc. select unhex('616263'); -- The return value is abc. select unhex(616263); -- The return value is null. select unhex(null);
WIDTH_BUCKET
構文
width_bucket(numeric <expr>, numeric <min_value>, numeric <max_value>, int <num_buckets>)
説明
バケットの数と、バケットの許容範囲の最小値と最大値を指定します。 これにより、バケット範囲が同じサイズの間隔に分割された等幅バケットを構築できます。 特定の式の値が含まれるバケットのIDを返します。 この関数は、MaxCompute V2.0データ型エディションのDECIMAL(precision、scale) 、BIGINT、INT、FLOAT、DOUBLE、およびDECIMALのデータ型をサポートします。 詳細については、「MaxCompute V2.0データ型エディション」をご参照ください。 この関数は、MaxCompute V2.0の追加関数です。
パラメーター
expr: 必須です。 このパラメーターには、一致するバケットIDを識別する式を指定します。
min_value: 必須です。 このパラメータは、バケットの許容範囲の最小値を指定します。
max_value: 必須です。 このパラメータは、バケットの許容範囲の最大値を指定します。 値はmin_valueより大きくなければなりません。
num_buckets: 必須です。 このパラメータは、バケットの数を指定します。 値は0より大きくなければなりません。
戻り値
BIGINT型の値が返されます。 値の範囲は0からnum_buckets + 1です。 戻り値は、次のルールによって異なります。
exprの値がmin_valueの値より小さい場合、0が返されます。
exprの値がmax_valueの値より大きい場合、num_buckets + 1の値が返されます。
exprの値がnullの場合、nullが返されます。 それ以外の場合は、値が含まれるバケットのIDが返されます。 バケットIDは、次の式に基づいて命名される。
バケットID = floor(num_buckets × (expr - min_value)/(max_value - min_value) + 1)
。min_value、max_value、またはnum_bucketsの値がnullの場合、nullが返されます。
例
例1: すべての入力パラメーターの値がnullではありません。 例を次に示します。
select key,value,width_bucket(value,100,500,5) as value_group from values (1,99), (2,100), (3,199), (4,200), (5,499), (6,500), (7,501), (8,NULL) as t(key,value);
次の応答が返されます。
+-------+--------+-------------+ | key | value | value_group | +-------+--------+-------------+ | 1 | 99 | 0 | | 2 | 100 | 1 | | 3 | 199 | 2 | | 4 | 200 | 2 | | 5 | 499 | 5 | | 6 | 500 | 6 | | 7 | 501 | 6 | | 8 | NULL | NULL | +-------+--------+-------------+
例2: 入力パラメーターの値がnullです。 例を次に示します。
select key,value,width_bucket(value,100,500,null) as value_group from values (1,99), (2,100), (3,199), (4,200), (5,499), (6,500), (7,501), (8,NULL) as t(key,value);
次の応答が返されます。
+------+-------+-------------+ | key | value | value_group | +------+-------+-------------+ | 1 | 99 | NULL | | 2 | 100 | NULL | | 3 | 199 | NULL | | 4 | 200 | NULL | | 5 | 499 | NULL | | 6 | 500 | NULL | | 7 | 501 | NULL | | 8 | NULL | NULL | +------+-------+-------------+
関連ドキュメント
上記の組み込み関数がビジネス要件を満たさない場合、MaxComputeはカスタム関数も提供します。 UDFの詳細については、「概要」をご参照ください。
MaxComputeのSQLに関するFAQの詳細については、以下のトピックを参照してください。
MaxComputeの組み込み関数に関する一般的なエラーとFAQの詳細については、以下のトピックを参照してください。