tencent cloud

Data Lake Compute

数学関数

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-12-25 12:00:07

ABS

関数構文:
ABS(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprの絶対値を返します
戻り型:<expr>と一致
例:
> SELECT abs(-1);
1

ACOS

関数構文:
ACOS(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprの逆余弦値を返します
戻り型:double
例:
> SELECT acos(1);
0.0
> SELECT acos(2);
NaN

ACOSH

関数構文:
ACOSH(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprの逆双曲余弦値を返します
戻り型:double
例:
> SELECT acosh(1);
0.0
> SELECT acosh(0);
NaN

ASIN

関数構文:
ASIN(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprの逆正弦値を返します
戻り型:double
例:
> SELECT asin(0);
0.0
> SELECT asin(2);
NaN

ASINH

関数構文:
ASINH(<expr> integer|double|decimal)
サポートエンジン:SparkSQL
使用説明:exprの逆双曲正弦値を返します
戻り型:double
例:
> SELECT asinh(0);
0.0

ATAN

関数構文:
ATAN(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprの逆正接値を返します
戻り型:double
例:
> SELECT atan(0);
0.0

ATAN2

関数構文:
ATAN2(<x>, integer|double|decimal, <y> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:平面の正x軸と指定された座標点間のラジアン角を返します
戻り型:double
例:
> SELECT atan2(0, 0);
0.0

ATANH

関数構文:
ATANH(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprの逆双曲正接値を返します
戻り型:double
例:
> SELECT atanh(0);
0.0
> SELECT atanh(2);
NaN

BIN

関数構文:
BIN(<expr> integer)
サポートエンジン:SparkSQL、Presto
使用説明:長値exprのバイナリ表現の文字列表現を返します。
戻り型:string
例:
> SELECT bin(13);
1101
> SELECT bin(-13);
1111111111111111111111111111111111111111111111111111111111110011

BROUND

関数構文:
BROUND(<expr> integer|double|decimal, <d> integer)
サポートエンジン:SparkSQL、Presto
使用説明:exprをHALF_EVEN丸めモードでd桁の小数に丸めて返します
戻り型:decimal
例:
> SELECT bround(2.5, 0);
2

CBRT

関数構文:
CBRT(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprの立方根を返します
戻り型:double
例:
> SELECT cbrt(27.0);
3.0

CEIL

関数構文:
CEIL(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:expr以上の最小の整数を返します
戻り型:integer
例:
> SELECT ceil(-0.1);
0
> SELECT ceil(5);
5

COS

関数構文:
COS(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprの余弦値を返します
戻り型:double
例:
> SELECT cos(0);
1.0

COSH

関数構文:
COSH(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprの双曲余弦値を返します
戻り型:double
例:
> SELECT cosh(0);
1.0

CONV

関数構文:
CONV(<num> bigint|string, <from_base> integer, <to_base> integer)
サポートエンジン:SparkSQL、Presto
使用説明:numをfrom_baseからto_baseに変換します
戻り型:string
例:
> SELECT conv('100', 2, 10);
4
> SELECT conv(-10, 16, -10);
-16

DEGREES

関数構文:
DEGREES(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:ラジアンを度に変換する
戻り型:double
例:
> SELECT degrees(3.141592653589793);
180.0

E

関数構文:
E()
サポートエンジン:SparkSQL、Presto
使用説明:オイラー定数を返します
戻り型:double
例:
> SELECT e();
2.718281828459045

EXP

関数構文:
EXP(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:オイラー定数eのexpr乗を返します
戻り型:double
例:
> SELECT exp(0);
1.0

EXPM1

関数構文:
EXPM1(<expr> integer|double|decimal)
サポートエンジン:SparkSQL
使用説明:EXP(expr)-1を返します
戻り型:double
例:
> SELECT expm1(0);
0.0

FLOOR

関数構文:
FLOOR(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:expr以下の最大の整数を返します
戻り型:integer
例:
> SELECT floor(-0.1);
-1
> SELECT floor(5);
5

FACTORIAL

関数構文:
FACTORIAL(<expr> integer)
サポートエンジン:SparkSQL、Presto
使用説明:exprの階乗を返します。exprは[0..20]の範囲です。それ以外の場合はNULLを返します。
戻り型:bigint
例:
> SELECT factorial(5);
120

HEX

関数構文:
HEX(<expr> bigint|string)
サポートエンジン:SparkSQL、Presto
使用説明:exprを16進数で返します
戻り型:string
例:
> SELECT hex(17);
11
> SELECT hex('Spark SQL');
537061726B2053514C

HYPOT

関数構文:
HYPOT(<expr1> integer|double|decimal, <expr2> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:sqrt(pow(expr1, 2) + pow(expr2, 2))を返します
戻り値の型:double
例:
> SELECT hypot(3, 4);
5.0

LOG

関数構文:
LOG(<base> integer|double|decimal, <expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprのbaseを底とする対数を返します。
戻り値の型:double
例:
> SELECT log(10, 100);
2.0

LOG10

関数構文:
LOG10(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprの10を底とする対数を返します。
戻り値の型:double
例:
> SELECT log10(10);
1.0

LOG1P

関数構文:
LOG1P(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:log(1 + expr)を返します
戻り値の型:double
例:
> SELECT log1p(0);
0.0

LOG2

関数構文:
LOG2(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprの2を底とする対数を返します。
戻り値の型:double
例:
> SELECT log2(2);
1.0

LN

関数構文:
LN(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprの自然対数(eを底とする)を返します。
戻り値の型:double
例:
> SELECT ln(1);
0.0

MOD

関数構文:
MOD(<expr1> integer|double|decimal, <expr2> integer|double|decimal)
<expr1> MOD <expr2>
サポートエンジン:SparkSQL、Presto
使用説明:expr1/expr2の余りを返します。
戻り型:double|integer
例:
> SELECT 2 % 1.8;
0.2
> SELECT MOD(2, 1.8);
0.2

NEGATIVE

関数構文:
NEGATIVE(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprの負数を返します
戻り型:exprと一致
例:
> SELECT negative(1);
-1

PI

関数構文:
PI()
サポートエンジン:SparkSQL、Presto
使用説明:PIを返す
戻り値の型:double
例:
> SELECT pi();
3.141592653589793

PMOD

関数構文:
PMOD(<expr1> integer|double|decimal, <expr2> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:expr1 mod expr2の正の値を返します
戻り値の型:double
例:
> SELECT pmod(10, 3);
1
> SELECT pmod(-10, 3);
2

POSITIVE

関数構文:
POSITIVE(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprを返します
戻り型:exprと一致
例:
> SELECT positive(1);
1

POWER

関数構文:
POWER(<base> integer|double|decimal, <number> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:baseのnumber乗を返します。
戻り値の型:double
例:
> SELECT power(2, 3);
8.0

POW

関数構文:
POW(<base> integer|double|decimal, <number> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:baseのnumber乗を返します
戻り型:double
例:
> SELECT pow(2, 3);
8.0

RADIANS

関数構文:
RADIANS(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:度をラジアンに変換する
戻り型:double
例:
> SELECT radians(180);
3.141592653589793

RINT

関数構文:
RINT(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:パラメータ値に最も近く、数学的な整数に等しい倍精度値を返します
戻り型:double
例:
> SELECT rint(12.3456);
12.0

ROUND

関数構文:
ROUND(<expr> integer|double|decimal, <d> integer)
サポートエンジン:SparkSQL、Presto
使用説明:exprを半切り上げモードでd桁の小数に丸めます。
戻り型:double
例:
> SELECT round(2.5, 0);
3

SHIFTLEFT

関数構文:
SHIFTLEFT(<base> integer|double|decimal, <expr> integer)
サポートエンジン:SparkSQL、Presto
使用説明:ビット単位で左にシフトします。
戻り型:int |bigint
例:
> SELECT shiftleft(2, 1);
4

SHIFTRIGHT

関数構文:
SHIFTRIGHT(<base> integer|double|decimal, <expr> integer)
サポートエンジン:SparkSQL、Presto
使用説明:ビット単位で右にシフトします。
戻り型:int |bigint
例:
> SELECT shiftright(4, 1);
2

SHIFTRIGHTUNSIGNED

関数構文:
SHIFTRIGHTUNSIGNED(<base> integer|double|decimal, <expr> integer)
サポートエンジン:SparkSQL、Presto
使用説明:ビット単位で符号なし右シフトします。
戻り型:int |bigint
例:
> SELECT shiftrightunsigned(4, 1);
2

SIGN

関数構文:
SIGN(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprが負、0、または正の場合、それぞれ-1.0、0.0、または1.0を返します。
戻り型:double
例:
> SELECT sign(40);
1.0

SIGNUM

関数構文:
SIGNUM(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprが負、0、または正の場合、それぞれ-1.0、0.0、または1.0を返します。
戻り型:double
例:
> SELECT signum(40);
1.0

SIN

関数構文:
SIN(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprの正弦値を返します
戻り型:double
例:
> SELECT sin(0);
0.0

SINH

関数構文:
SINH(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprの双曲正弦値を返します
戻り型:double
例:
> SELECT sinh(0);
0.0

SQRT

関数構文:
SQRT(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprの平方根を返します
戻り型:double
例:
> SELECT sqrt(4);
2.0

TAN

関数構文:
TAN(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprの正接値を返します
戻り値の型:double
例:
> SELECT tan(0);
0.0

COT

関数構文:
COT(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:式の余接を返します
戻り値の型:double
例:
> SELECT cot(1);
0.6420926159343306

TANH

関数構文:
TANH(<expr> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:exprの双曲正接値を返します
戻り値の型:double
例:
> SELECT tanh(0);
0.0

WIDTH_BUCKET

関数構文:
WIDTH_BUCKET(<value> integer|double|decimal, <min> integer|double|decimal, <max> integer|double|decimal, <num_backet> integer)
サポートエンジン:SparkSQL、Presto
使用説明:minからmaxをnum_backet個のグループに等分割し、valueが属するグループ番号を返します
戻り型:integer
例:
> SELECT width_bucket(5.3, 0.2, 10.6, 5);
3
> SELECT width_bucket(-2.1, 1.3, 3.4, 3);
0
> SELECT width_bucket(8.1, 0.0, 5.7, 4);
5
> SELECT width_bucket(-0.9, 5.2, 0.5, 2);
3

TRY_ADD

関数構文:
TRY_ADD(<expr1> integer|double|decimal|date|timestamp, <expr2> integer|double|decimal|date|timestamp)
サポートエンジン:SparkSQL、Presto
使用説明:expr1とexpr2の合計を返します。オーバーフロー時は結果がnullになります。
戻り型:integer|double|decimal|date|timestamp
例:
> SELECT try_add(1, 2);
3
> SELECT try_add(2147483647, 1);
NULL
> SELECT try_add(date'2021-01-01', 1);
2021-01-02

TRY_DIVIDE

関数構文:
TRY_DIVIDE(<dividend> integer|double|decimal, <divisor> integer|double|decimal)
サポートエンジン:SparkSQL、Presto
使用説明:dividend/divisorを返します
戻り値の型:double
例:
> SELECT try_divide(3, 2);
1.5
> SELECT try_divide(2L, 2L);
1.0
> SELECT try_divide(1, 0);
NULL

RAND

関数構文:
RAND([<seed> integer])
サポートエンジン:SparkSQL、Presto
使用説明:[0,1]の範囲で独立かつ均一に分布するランダムな値を返します。
戻り値の型:double
例:
> SELECT rand();
0.9629742951434543
> SELECT rand(0);
0.7604953758285915
> SELECT rand(null);
0.7604953758285915

RANDOM

関数構文:
RANDOM([<seed> integer])
サポートエンジン:SparkSQL、Presto
使用説明:[0,1]の範囲で独立かつ均一に分布するランダムな値を返します。
戻り値の型:double
例:
> SELECT rand();
0.9629742951434543
> SELECT rand(0);
0.7604953758285915
> SELECT rand(null);
0.7604953758285915

RANDN

関数構文:
RANDN([<seed> integer])
サポートエンジン:SparkSQL、Presto
使用説明:標準正規分布から抽出された独立かつ同一分布(i.i.d.)の値を含むランダム値を返します。この関数はSPARKSQLとPRESTOで実装方法が異なるため、同じseedを使用しても異なる結果が得られる場合があります。
戻り値の型:double
例:
> SELECT randn();
-0.3254147983080288
> SELECT randn(0);
1.6034991609278433
> SELECT randn(null);
1.6034991609278433

DIV

関数構文:
<expr1> DIV <expr2>
サポートエンジン:SparkSQL
使用説明:expr1をexpr2で割ります。
戻り型:integer
例:
> SELECT 3 div 2;
1


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック