数値関数

EQLでは、次に示す数値関数がサポートされます。

関数 説明と例
加算 加算演算子(+)
SELECT NortheastSales + SoutheastSales AS EastTotalSales
減算 減算演算子(-)
SELECT SalesRevenue - TotalCosts AS Profit
乗算 乗算演算子(*)
SELECT Price * 0.7 AS SalePrice
除算 除算演算子(/)
SELECT YearTotal / 4 AS QuarterAvg
ABS nの絶対値を返します。

n0または正の整数の場合は、nを返します。

それ以外の場合は、nに-1が乗算されます。

SELECT ABS(-1) AS one

結果: one = 1

CEIL n以上の最小整数値を返します。
SELECT CEIL(123.45) AS x, CEIL(32) AS y, CEIL(-123.45) AS z

結果: x = 124、y = 32、z = 123

EXP eを底とする累乗。

e(自然対数の底)のn乗を返します。

SELECT EXP(1.0) AS baseE

結果: baseE = e^1.0 = 2.71828182845905

FLOOR n以下の最大整数値を返します。
SELECT FLOOR(123.45) AS x, FLOOR(32) AS y, FLOOR(-123.45) AS z

結果: x = 123、y = 32、z = 124

LN 自然対数。1つの引数の対数を計算します。底はeです。
SELECT LN(1.0) AS baseE

結果: baseE = e^1.0 = 0

LOG 対数。log(n, m)は2つの引数を取ります。ここで、nは底で、mは対数計算の対象となる値です。
Log(10,1000) = 3
MOD モジュロ。nmで除算した余りを返します。
Mod(10,3) = 1

EQLでは、C/POSIX標準で定義されているfmod浮動小数点剰余が使用されます。

ROUND 数値を指定の小数位で丸めたものを返します。
単項(1引数)バージョンは引数を1つのみ取り(丸める数値)、入力の小数部(非整数部)を切り捨てます。次に例を示します。
ROUND(8.2) returns 8
ROUND(8.7) returns 9
二項(2引数)バージョンは2つの引数を取ります(1つは丸める数値、もう1つは正または負の整数で、どの桁で数値を丸めるかを指定できます)。二項バージョンは常にdoubleを返します。
  • 2番目の引数が正の場合は、小数点より後の、返される桁数に対応します。次に例を示します。
    ROUND(123.4567, 3) returns 123.457
  • 2番目の引数が負の場合は、小数点より前の、返される桁数に対応します。次に例を示します。
    ROUND(123.4, -3) returns 0
    ROUND(1234.56, -3) returns 1000
SIGN 引数の符号を、nが負、0、正のどれであるかに応じて-1、0または1として返します。結果は常にdoubleです。
SELECT SIGN(-12) AS x, SIGN(0) AS y, SIGN(12) AS z

結果: x = -1、y = 0、z = 1

SQRT nの、負ではない平方根を返します。
SELECT SQRT(9) AS x

結果: x = 3

TRUNC 数値nを小数点第m位で切り捨てたものを返します。mが0の場合は、結果には小数点または小数部がありません。
単項(1引数)バージョンは、入力の小数部(非整数部)を切り捨てます。次に例を示します。
SELECT TRUNC(3.14159265) AS x
結果: x = 3

二項(2引数)バージョンは、どの桁で数値を切り捨てるかを指定できます。二項バージョンは常にdoubleを返します。次に例を示します。

SELECT TRUNC(3.14159265, 3) AS y
結果: y = 3.141
SIN nのサイン。角度nの単位はラジアンです。
SIN(3.14159/6) = 0.499999616987256
COS nのコサイン。角度nの単位はラジアンです。
COS(3.14159/3) = 0.500000766025195
TAN nのタンジェント。角度nの単位はラジアンです。
TAN(3.14159/4) = 0.999998673205984
POWER nm乗をdoubleとして返します。
Power(2,8) = 256
TO_DURATION タイムスタンプの文字列表現をミリ秒単位にキャストし、期間として使用できるようにします。
TO_DOUBLE 整数の文字列表現をdoubleとしてキャストします。
TO_INTEGER(boolean) TRUE/FALSE1/0にキャストします。