Hologres は、次の数学関数をサポートしています。 ここに記載されていない関数については、PostgreSQL 11 ドキュメントの 数学関数と演算子 をご参照ください。
このトピックの出力例では、psql クライアントのデフォルトの表示精度 (extra_float_digits = 0) を使用しています。 浮動小数点の結果として表示される桁数は、クライアントの extra_float_digits 設定によって異なりますが、基になる値は同じです。
一般的な数学関数
| 関数 | 説明 |
|---|---|
| ABS | 数値の絶対値を返します。 |
| CBRT | 数値の立方根を返します。 |
| CEIL | 数値を最も近い整数に切り上げます。 CEILING のエイリアスです。 |
| CEILING | 数値を最も近い整数に切り上げます。 CEIL のエイリアスです。 |
| DEGREES | ラジアンを度に変換します。 |
| EXP | e を数値で累乗した値 (e^num) を返します。 |
| FLOOR | 数値を最も近い整数に切り捨てます。 |
| LN | 数値の自然対数を返します。 |
| LOG | 10 を底とする数値の対数を返します。 |
| MOD | ある数値を別の数値で割ったときの剰余を返します。 |
| PI | π の値 (3.14159265358979) を返します。 |
| POWER | a を b で累乗した値を返します。 |
| RADIANS | 度をラジアンに変換します。 |
| RANDOM | [0.0, 1.0) の範囲で乱数を返します。 |
| ROUND | 数値を最も近い整数、または指定された小数点以下の桁数に丸めます。 |
| SIGN | 数値の符号 (1、-1、または 0) を返します。 |
| SQRT | 数値の平方根を返します。 |
| TRUNC | 数値を整数または指定された小数点以下の桁数に切り捨てます。 |
| WIDTH_BUCKET | 値を等幅のバケットのいずれかに割り当て、バケット番号を返します。 |
三角関数
| 関数 | 説明 |
|---|---|
| ACOS | 数値の逆余弦を返します。 |
| ASIN | 数値の逆正弦を返します。 |
| ATAN | 数値の逆正接を返します。 |
| ATAN2 | y/x の逆正接を返します。 |
| COS | 数値の余弦を返します。 |
| COT | 数値の余接を返します。 |
| SIN | 数値の正弦を返します。 |
| TAN | 数値の正接を返します。 |
ABS
数値の絶対値を返します。
構文
ABS(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | INT、BIGINT、REAL、DOUBLE PRECISION、NUMERIC、または DECIMAL | 入力数値。 |
戻り値
入力と同じ型の値を返します。
例
SELECT ABS(-17.4); abs
-----
17.4
CBRT
数値の立方根を返します。
構文
CBRT(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | DOUBLE PRECISION | 入力数値。 |
戻り値
DOUBLE PRECISION 型の値を返します。
例
SELECT CBRT(9); cbrt
-----------------
2.0800838230519
CEIL
数値を最も近い整数に切り上げます。 CEIL は CEILING のエイリアスです。
構文
CEIL(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | DOUBLE PRECISION または NUMERIC | 入力数値。 |
戻り値
入力と同じ型の値を返します。
例
SELECT CEIL(9.2); ceil
------
10
関連情報
CEILING
数値を最も近い整数に切り上げます。 CEILING は CEIL のエイリアスです。
構文
CEILING(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | DOUBLE PRECISION または NUMERIC | 入力数値。 |
戻り値
入力と同じ型の値を返します。
例
SELECT CEILING(9.2); ceiling
---------
10
関連情報
DEGREES
ラジアン単位の値を度に変換します。
構文
DEGREES(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | DOUBLE PRECISION | ラジアン単位の入力値。 |
戻り値
度に相当する角度を表す DOUBLE PRECISION 型の値を返します。
例
SELECT DEGREES(3.2); degrees
--------------
183.34649444186343
関連情報
EXP
e を num で累乗した値 (e^num) を返します。
構文
EXP(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | DOUBLE PRECISION または NUMERIC | 指数。 |
戻り値
入力と同じ型の値を返します。
例
SELECT EXP(1); exp
----------------
2.718281828459045
FLOOR
数値を最も近い整数に切り捨てます。
構文
FLOOR(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | DOUBLE PRECISION または NUMERIC | 入力数値。 |
戻り値
入力と同じ型の値を返します。
例
SELECT FLOOR(3.8); floor
------
3
関連情報
LN
数値の自然対数を返します。
構文
LN(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | DOUBLE PRECISION または NUMERIC | 入力数値。 |
戻り値
入力と同じ型の値を返します。
例
SELECT LN(3.8); ln
----------------
1.3350010667323401
LOG
10 を底とする数値の対数を返します。
構文
LOG(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | DOUBLE PRECISION または NUMERIC | 入力数値。 |
戻り値
入力と同じ型の値を返します。
例
SELECT LOG(100); log
-----
2
MOD
num を x で割ったときの剰余を返します。
構文
MOD(num, x)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | NUMERIC | 被除数。 |
x |
はい | NUMERIC | 除数。 |
戻り値
入力と同じ型の値を返します。
例
SELECT MOD(9, 4); mod
-----
1
PI
π の値を返します。
構文
PI()
戻り値
DOUBLE PRECISION 型の値 3.14159265358979 を返します。
例
SELECT PI(); pi
------------------
3.14159265358979
POWER
a を b で累乗した値を返します。
構文
POWER(a, b)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
a |
はい | DOUBLE PRECISION | 底。 |
b |
はい | DOUBLE PRECISION | 指数。 |
戻り値
DOUBLE PRECISION 型の値を返します。
例
SELECT POWER(9, 3); power
-------
729
RADIANS
度単位の値をラジアンに変換します。
構文
RADIANS(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | DOUBLE PRECISION | 度単位の入力値。 |
戻り値
ラジアンに相当する角度を表す DOUBLE PRECISION 型の値を返します。
例
SELECT RADIANS(45); radians
-------------------
0.785398163397448
関連情報
RANDOM
[0.0, 1.0) の範囲でランダムな DOUBLE PRECISION 型の値を返します。
構文
RANDOM()
戻り値
DOUBLE PRECISION 型の値を返します。 有効値: [0.0, 1.0)。
例
SELECT RANDOM(); random
-------------------
0.377819478977472
ROUND
数値を最も近い整数、または指定された小数点以下の桁数に丸めます。
構文
-- 最も近い整数に丸める
ROUND(num)
-- 小数点以下 s 桁に丸める
ROUND(num, s)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | DOUBLE PRECISION または NUMERIC (単一引数形式) 、NUMERIC のみ (2 引数形式) | 入力数値。 |
s |
いいえ | INT | 丸める小数点以下の桁数。 |
戻り値
num と同じ型の値を返します。
例
SELECT ROUND(42.4); round
-------
42
関連情報
SIGN
数値の符号を返します: 正の場合は 1、負の場合は -1、ゼロの場合は 0 です。
構文
SIGN(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | DOUBLE PRECISION または NUMERIC | 入力数値。 |
戻り値
1、-1、または 0 を返します。
例
SELECT SIGN(-8.4); sign
------
-1
SQRT
数値の平方根を返します。
構文
SQRT(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | DOUBLE PRECISION または NUMERIC | 入力数値。 |
戻り値
入力と同じ型の値を返します。
例
SELECT SQRT(2); sqrt
-----------------
1.4142135623731
TRUNC
数値をゼロに向かって切り捨て、小数部を破棄します。
構文
-- 整数に切り捨てる
TRUNC(num)
-- 小数点以下 s 桁に切り捨てる
TRUNC(num, s)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | NUMERIC | 入力数値。 |
s |
いいえ | INT | 保持する小数点以下の桁数。 |
戻り値
NUMERIC 型の値を返します。
例
SELECT TRUNC(2.456); trunc
-------
2SELECT TRUNC(2.4564, 2); trunc
-------
2.45
関連情報
WIDTH_BUCKET
範囲を等幅のバケットに分割し、値が分類されるバケット番号を返します。
構文
WIDTH_BUCKET(value, start, end, num_buckets)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
value |
はい | DOUBLE PRECISION または NUMERIC | バケットに割り当てる値。 |
start |
はい | DOUBLE PRECISION または NUMERIC | 範囲の下限。 |
end |
はい | DOUBLE PRECISION または NUMERIC | 範囲の上限。 |
num_buckets |
はい | INT | 作成する等幅バケットの数。 |
戻り値
INT 型の値を返します。
例
次の例では、0~100 の範囲を 5 つの等しいバケット (0~20、20~40、40~60、60~80、80~100) に分割し、値 45 のバケット番号を返します。
SELECT WIDTH_BUCKET(45, 0, 100, 5); width_bucket
--------------
3
値 45 はバケット 3 (範囲 40~60) に分類されます。
ACOS
num の逆余弦を返します。
構文
ACOS(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | NUMERIC | 入力値。 有効値: [-1, 1]。 |
戻り値
DOUBLE PRECISION 型の値を返します。
例
SELECT ACOS(-1); acos
------------------
3.14159265358979
関連情報
ASIN
num の逆正弦を返します。
構文
ASIN(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | DOUBLE PRECISION | 入力値。 有効値: [-1, 1]。 |
戻り値
DOUBLE PRECISION 型の値を返します。
例
SELECT ASIN(-1); asin
------------------
-1.5707963267949
関連情報
ATAN
num の逆正接を返します。
構文
ATAN(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | DOUBLE PRECISION | 入力値。 |
戻り値
DOUBLE PRECISION 型の値を返します。
例
SELECT ATAN(2); atan
------------------
1.10714871779409
関連情報
ATAN2
y/x の逆正接を返します。両方の引数の符号を使用して正しい象限を決定します。
構文
ATAN2(y, x)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
y |
はい | DOUBLE PRECISION | y 座標。 |
x |
はい | DOUBLE PRECISION | x 座標。 |
戻り値
DOUBLE PRECISION 型の値を返します。
例
SELECT ATAN2(4, 2); atan2
------------------
1.10714871779409
関連情報
COS
num (ラジアン単位の入力) の余弦を返します。
構文
COS(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | DOUBLE PRECISION | ラジアン単位の入力角度。 |
戻り値
DOUBLE PRECISION 型の値を返します。
例
SELECT COS(2); cos
--------------------
-0.416146836547142
関連情報
COT
num (ラジアン単位の入力) の余接を返します。
構文
COT(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | DOUBLE PRECISION | ラジアン単位の入力角度。 |
戻り値
DOUBLE PRECISION 型の値を返します。
例
SELECT COT(2); cot
--------------------
-0.457657554360286
関連情報
SIN
num (ラジアン単位の入力) の正弦を返します。
構文
SIN(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | DOUBLE PRECISION | ラジアン単位の入力角度。 |
戻り値
DOUBLE PRECISION 型の値を返します。
例
SELECT SIN(2); sin
-------------------
0.909297426825682
関連情報
TAN
num (ラジアン単位の入力) の正接を返します。
構文
TAN(num)
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
num |
はい | DOUBLE PRECISION | ラジアン単位の入力角度。 |
戻り値
DOUBLE PRECISION 型の値を返します。
例
SELECT TAN(2); tan
-------------------
-2.18503986326152
関連情報