このトピックでは、数学計算関数の構文について説明します。 このトピックでは、関数の使用方法の例も示します。
次の表に、Simple Log Serviceでサポートされている数学的計算機能を示します。
次の演算子がサポートされています。
+-*/%
デフォルトでは、(/) 演算子を使用して計算を実行するたびに小数部が除外されます。
x * 1.0/y
式を使用して、計算を実行するたびに小数部を保持できます。分析ステートメントで文字列を使用する場合は、文字列を単一引用符 ('') で囲む必要があります。 囲まれていない文字列または二重引用符 ("") で囲まれている文字列は、フィールド名または列名を示します。 例えば、 'status' はステータスの文字列を示し、status または "status" はステータスログフィールドを示します。
関数 | 構文 | 説明 | SQLでサポート | SPLでサポート |
abs( x) | xの絶対値を計算します。 | √ | √ | |
acos( x) | xのアークコサインを計算します。 | √ | √ | |
asin( x) | xのアークサインを計算します。 | √ | √ | |
atan( x) | xのアークタンジェントを計算します。 | √ | √ | |
atan2( x, y) | xをyで割ったアークタンジェントを計算します。 | √ | √ | |
cbrt( x) | xの立方根を計算します。 | √ | √ | |
ceil( x) | xを最も近い整数まで丸めます。 この関数は、天井関数のエイリアスです。 | √ | √ | |
天井 (x) | xを最も近い整数まで丸めます。 | √ | √ | |
cos( x) | xのコサインを計算します。 | √ | √ | |
cosh( x) | xの双曲線余弦を計算します。 | √ | √ | |
cosine_similarity( x, y) | xとyのコサイン類似度を計算します。 | √ | × | |
度 (x) | ラジアン単位の角度を同等の度に変換します。 | √ | √ | |
e() | 自然対数の底であるeの値を返します。 | √ | √ | |
exp( x) | eをxの累乗に上げます。 | √ | × | |
フロア (x) | xを最も近い整数まで丸めます。 | √ | √ | |
from_base( x, y) | xを基数yに変換します。 | √ | √ | |
ln( x) | xの自然対数を計算します。 | √ | √ | |
infinity() | 正の無限を表す値を返します。 | √ | √ | |
is_nan( x) | xが非数値 (NaN) かどうかを判断します。 | √ | √ | |
log2( x) | xの底2の対数を計算します。 | √ | √ | |
log10( x) | xの10を底とする対数を計算します。 | √ | √ | |
ログ (x, y) | xの底yの対数を計算します。 | √ | × | |
mod( x, y) | xをyで割った余りを計算します。 | √ | √ | |
nan() | NaNの値を返します。 | √ | √ | |
pi() | π の値を小数点以下15桁まで返します。 | √ | √ | |
pow( x、y) | xをyのべき乗に上げます。 この関数は、power関数のエイリアスです。 | √ | √ | |
パワー (x、y) | xをyのべき乗に上げます。 | √ | √ | |
ラジアン (x) | 度単位の角度をラジアン単位の角度に変換します。 | √ | √ | |
rand() | 乱数を返します。 | √ | √ | |
random() | 範囲 [0,1) の乱数を返します。 | √ | √ | |
ランダム (x) | [0,x) の範囲の乱数を返します。 | √ | √ | |
ラウンド (x) | xを最も近い整数に丸めます。 | √ | √ | |
ラウンド (x, n) | xを小数点以下n桁の小数点以下の小数点以下に丸めます。 | √ | √ | |
sign( x) | xの符号を返します。 有効な値: 1、0、および-1。 | √ | × | |
sin( x) | xの正弦を計算します。 | √ | √ | |
sqrt( x) | xの平方根を計算します。 | √ | √ | |
tan( x) | xの正接を計算します。 | √ | √ | |
tanh( x) | xの双曲正接を計算します。 | √ | √ | |
to_base( x, y) | xをベースy文字列に変換します。 | √ | × | |
truncate( x) | xの小数部分を削除します。 | √ | √ | |
width_bucke( x, bound1, bound2, numBuckets) | 数値範囲を等しい幅のバケットに分割し、バケット番号xを返します。 | √ | × | |
width_bucke( x、bins) | 配列で指定されたバケットの範囲内のバケット数xを返します。 | √ | × |
abs関数
abs関数はxの絶対値を計算します。
構文
abs(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、smallint、integer、real、tinyint、bigint、double、またはdecimal型です。 |
戻り値のデータ型
パラメーター値のデータ型と同じです。
例
-25の絶対値を計算します。
クエリ文
* | select abs(-25)
クエリと分析結果
acos関数
acos関数はxのアークコサインを計算します。
構文
acos(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 有効な値: [-1,1] 。 値が [-1,1] の範囲外の場合、関数はNaNを返します。 |
戻り値のデータ型
ダブルタイプ。
例
45 ° の角度のアークコサインを計算します。
クエリ文
* | SELECT acos(pi()/4)
クエリと分析結果
asin関数
asin関数は、xのアークサインを計算します。
構文
asin(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 有効な値: [-1,1] 。 値が [-1,1] の範囲外の場合、関数はNaNを返します。 |
戻り値のデータ型
ダブルタイプ。
例
45 ° の角度のアーク正弦を計算します。
クエリ文
* | SELECT asin(pi()/4)
クエリと分析結果
atan関数
atan関数は、xのアークタンジェントを計算します。
構文
atan(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ダブルタイプ。
例
45 ° の角度のアークタンジェントを計算します。
クエリ文
* | SELECT atan(pi()/4)
クエリと分析結果
atan2関数
atan2関数は、xをyで割ったアークタンジェントを計算します。
構文
atan2(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
y | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ダブルタイプ。
例
30 ° の角度のアークタンジェントを計算します。
クエリ文
* | SELECT atan2(pi(),6)
クエリと分析結果
cbrt関数
cbrt関数は、xの立方根を計算します。
構文
cbrt(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ダブルタイプ。
例
100の立方根を計算します。
クエリ文
* | select cbrt(100)
クエリと分析結果
ceil関数
ceil関数は、xを最も近い整数まで丸めます。 この関数は、天井関数のエイリアスです。
構文
ceil(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、tinyint、smallint、integer、real、bigint、double、またはdecimal型です。
|
戻り値のデータ型
パラメーター値のデータ型と同じです。
例
request_timeフィールドの値を最も近い整数まで丸めます。
サンプルフィールド
request_time:9.3
クエリ文
* | SELECT ceil(request_time) AS request_time
クエリと分析結果
天井関数
天井関数は、xを最も近い整数まで丸めます。
構文
ceiling(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、tinyint、smallint、integer、real、bigint、double、またはdecimal型です。
|
戻り値のデータ型
パラメーター値のデータ型と同じです。
例
request_timeフィールドの値を最も近い整数まで丸めます。
サンプルフィールド
request_time:9.3
クエリ文
* | SELECT ceiling(request_time) AS request_time
クエリと分析結果
cos関数
cos関数はxのコサインを計算します。
構文
cos(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ダブルタイプ。
例
30 ° の角度のコサインを計算します。
クエリ文
* | SELECT cos(pi()/6)
クエリと分析結果
cosh関数
cosh関数は、xの双曲線余弦を計算します。
構文
cosh(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ダブルタイプ。
例
30 ° の角度の双曲線余弦を計算します。
クエリ文
* | SELECT cosh(pi()/6)
クエリと分析結果
cosine_similarity関数
cosine_similarity関数は、xとyの間のコサイン類似度を計算します。
構文
cosine_similarity(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はmap(varchar,double) 型です。 |
y | このパラメーターの値はmap(varchar,double) 型です。 |
戻り値のデータ型
ダブルタイプ。
例
2つのベクトル間のコサイン類似度を計算します。
クエリ文
* | SELECT cosine_similarity(MAP(ARRAY['a'], ARRAY[1.0])), MAP(ARRAY['a'], ARRAY[2.0]))
クエリと分析結果
度関数
度関数は、ラジアン単位の角度を度単位の同等の角度に変換します。
構文
degrees(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ダブルタイプ。
例
ラジアンの π を同等の度に変換します。
クエリ文
* | SELECT degrees(pi())
クエリと分析結果
e関数
e関数は、自然対数の底であるeの値を返します。
構文
e()
戻り値のデータ型
ダブルタイプ。
例
eの値を取得します。
クエリ文
* | SELECT e()
クエリと分析結果
exp関数
exp関数はeをxの累乗に引き上げます。
構文
exp(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ダブルタイプ。
例
eを3の力に上げます。
クエリ文
* | SELECT exp (3)
クエリと分析結果
フロア機能
floor関数は、xを最も近い整数に切り下げます。
構文
floor(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、tinyint、smallint、integer、real、bigint、double、またはdecimal型です。
|
戻り値のデータ型
ダブルタイプ。
例
request_timeフィールドの値を最も近い整数に丸めます。
サンプルフィールド
request_time:10.3
クエリ文
* | SELECT floor(request_time) AS request_time
クエリと分析結果
from_base関数
from_base関数は、xを基数yに変換します。
構文
from_base(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はvarchar型です。 |
y | このパラメーターの値はbigint型です。 値は数値システムを指定します。 有効な値: [2,36] 。 |
戻り値のデータ型
bigint型。
例
文字列1101を数値に変換します。
クエリ文
* | SELECT from_base('1101',2)
クエリと分析結果
ln関数
ln関数は、xの自然対数を計算する。
構文
ln(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 値は0より大きくなければなりません。 |
戻り値のデータ型
ダブルタイプ。
例
2の自然対数を計算します。
クエリ文
* | SELECT ln (2)
クエリと分析結果
無限関数
infinity関数は、正の無限を表す値を返します。
構文
infinity()
戻り値のデータ型
ダブルタイプ。
例
正の無限大を表す値を取得します。
クエリ文
* | SELECT infinity()
クエリと分析結果
is_nan関数
is_nan関数は、xがNaNかどうかを判断します。 はいの場合、関数はtrueを返します。
構文
is_nan(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ブール型。
例
statusフィールドの値がNaNかどうかを確認します。
クエリ文
* | SELECT is_nan(status)
クエリと分析結果
log2関数
log2関数は、xの底2の対数を計算します。
構文
log2(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ダブルタイプ。
例
100の底2の対数を計算します。
クエリ文
* | SELECT log2(100)
クエリと分析結果
log10関数
log10関数は、xの10を底とする対数を計算します。
構文
log10(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ダブルタイプ。
例
100の10を底とする対数を計算します。
クエリ文
* | SELECT log10(100)
クエリと分析結果
ログ関数
log関数は、xの底y対数を計算します。
構文
log(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
y | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ダブルタイプ。
例
100の底5の対数を計算します。
クエリ文
* | SELECT log(100,5)
クエリと分析結果
mod関数
mod関数は、xをyで割った余りを計算します。
構文
mod(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、tinyint、smallint、integer、real、bigint、double、またはdecimal型です。 |
y | このパラメーターの値は、tinyint、smallint、integer、real、bigint、double、またはdecimal型です。 |
戻り値のデータ型
パラメーター値のデータ型と同じです。
例
100を30で割った余りを計算する。
クエリ文
* | SELECT mod(100,30)
クエリと分析結果
nan関数
nan関数はNaNの値を返します。
構文
nan()
戻り値のデータ型
ダブルタイプ。
例
NaNの値を取得します。
クエリ文
* | SELECT nan()
クエリと分析結果
pi関数
pi関数は、π の値を小数点以下15桁まで返します。
構文
pi()
戻り値のデータ型
ダブルタイプ。
例
小数点以下15桁までの π の値を取得します。
クエリ文
* | SELECT pi()
クエリと分析結果
pow関数
pow関数は、xをyの累乗に引き上げます。 この関数は、power関数のエイリアスです。
構文
pow(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
y | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ダブルタイプ。
例
2を5のパワーに上げます。
クエリ文
* | SELECT pow(2,5)
クエリと分析結果
パワー機能
べき乗関数は、xをyのべき乗に引き上げます。
構文
power(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
y | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ダブルタイプ。
例
2を5のパワーに上げます。
クエリ文
* | SELECT power(2,5)
クエリと分析結果
ラジアン関数
ラジアン関数は、度単位の角度をラジアン単位の角度に変換します。
構文
radians(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ダブルタイプ。
例
180 ° の角度 (度) をラジアンに相当する角度に変換します。
クエリ文
* | SELECT radians(180)
クエリと分析結果
rand関数
rand関数は乱数を返します。
構文
rand()
戻り値のデータ型
ダブルタイプ。
例
乱数を取得します。
クエリ文
* | select rand()
クエリと分析結果
ランダム関数
ランダム関数は [0,x) の範囲の乱数を返します。
構文
次の構文を使用すると、関数は [0,1] の範囲の乱数を返します。
random()
次の構文を使用すると、関数は [0,x) の範囲の乱数を返します。
random(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、tinyint、smallint、integer、またはbigint型です。 |
戻り値のデータ型
パラメーター値のデータ型と同じです。
例
[0,100] の範囲の乱数を取得します。
クエリ文
* | select random(100)
クエリと分析結果
ラウンド関数
ラウンド関数は、xを最も近い整数または小数に丸めます。 nを指定した場合、関数は小数点以下n桁を保持します。 nを指定しない場合、関数はxを最も近い整数に丸めます。
構文
次の構文を使用する場合、関数はxを最も近い整数に丸めます。
round(x)
次の構文を使用する場合、関数はxを小数点以下n桁の最も近い10進数に丸めます。
round(x, n)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、tinyint、smallint、integer、またはbigint型です。 |
n | このパラメーターは、関数が保持する小数点以下の桁数を指定します。 |
戻り値のデータ型
パラメーター値のデータ型と同じです。
例
当日のページビュー (PV) 数と前日のPV数を比較します。 次に、比較結果をパーセンテージとして提示する。
クエリ文
* | SELECT diff [1] AS today, round((diff [3] -1.0) * 100, 2) AS growth FROM (SELECT compare(pv, 86400) as diff FROM (SELECT COUNT(*) as pv FROM website_log))
クエリと分析結果
サイン関数
sign関数はxの符号を返します。 有効な値: 1、0、および-1。
構文
sign(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、integer、smallint、tinyint、real、double、bigint、またはdecimal(p、s) 型です。
|
戻り値のデータ型
パラメーター値のデータ型と同じです。
例
10のサインを取得します。
クエリ文
* | SELECT sign(10)
クエリと分析結果
sin関数
sin関数はxの正弦を計算します。
構文
sin(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ダブルタイプ。
例
90 ° の角度の正弦を計算します。
クエリ文
* | select sin(pi()/2)
クエリと分析結果
sqrt関数
sqrt関数は、xの平方根を計算します。
構文
sqrt(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ダブルタイプ。
例
100の平方根を計算します。
クエリ文
* | select sqrt(100)
クエリと分析結果
タン関数
tan関数はxのタンジェントを計算します。
構文
tan(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ダブルタイプ。
例
30 ° の角度のタンジェントを計算します。
クエリ文
* | SELECT tan(pi()/6)
クエリと分析結果
tanh関数
tanh関数は、xの双曲正接を計算します。
構文
tanh(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ダブルタイプ。
例
30 ° の角度の双曲正接を計算します。
クエリ文
* | SELECT tanh(pi()/6)
クエリと分析結果
to_base関数
to_base関数は、xをbase y文字列に変換します。
構文
to_base(x, y)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はbigint型です。 |
y | このパラメーターの値はbigint型です。 値は数値システムを指定します。 有効な値: [2,36] 。 |
戻り値のデータ型
varcharタイプ。
例
180をバイナリ文字列に変換します。
クエリ文
* | SELECT to_base(180, 2)
クエリと分析結果
truncate関数
truncate関数は、xの小数部分を削除します。
構文
truncate(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
戻り値のデータ型
ダブルタイプ。
例
11.11の小数部分を削除します。
クエリ文
* | SELECT truncate(11.11)
クエリと分析結果
width_bucket関数
width_bucket関数は、バケット番号xを返します。
構文
次の構文を使用する場合、関数は数値範囲を同じ幅のバケットに分割し、バケット番号xを返します。
width_bucket(x、bound1、bound2、numBuckets)
次の構文を使用すると、配列で指定されたバケットの範囲内のバケット番号xが返されます。
width_bucket(x、bins)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdouble型です。 |
bound1 | このパラメータは、数値範囲の下限を指定します。 |
bound2 | このパラメータは、数値範囲の上限を指定します。 |
numBuckets | このパラメータは、バケットの数を指定します。 値は0より大きい整数でなければなりません。 |
ビン | このパラメータは、バケットの範囲を指定します。 値はdouble型の配列です。 |
戻り値のデータ型
bigint型。
xが範囲内の場合、関数はバケット番号xを返します。
xが下限を下回る場合、関数は0を返します。
xが上限を超えている場合、関数はnumBuckets + 1を返します。
例
例1: 範囲 [10,80] を7つのバケットに分割します。 次に、request_timeフィールドの各値のバケット番号を取得します。
クエリ文
* | SELECT request_time, width_bucket(request_time, 10, 80,7) AS numBuckets
クエリと分析結果
例2: 配列を使用して7つのバケットの範囲を指定します。 次に、request_timeフィールドの各値のバケット番号を取得します。
クエリ文
* | SELECT request_time, width_bucket(request_time, array[10,20,30,40,50,60,70,80]) AS numBuckets
クエリと分析結果