Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

数学関数

acos

導入バージョン: v1.1.0

引数の逆余弦を返します。

構文

acos(x)

引数

戻り値

x の逆余弦を返します。 Float*

使用例

SELECT acos(0.5);
1.0471975511965974

acosh

導入バージョン: v20.12.0

逆双曲線余弦を返します。

構文

acosh(x)

引数

  • x — 角度の双曲線余弦の値。値の範囲: 1 ≤ x < +∞(U)Int* または Float* または Decimal*

戻り値

ラジアン単位の角度を返します。値の範囲: 0 ≤ acosh(x) < +∞Float64

使用例

SELECT acosh(1)
0

asin

導入バージョン: v1.1.0

指定された引数の逆正弦を計算します。 引数が [-1, 1] の範囲にある場合は、[-pi() / 2, pi() / 2] の範囲の値を返します。

構文

asin(x)

引数

戻り値

指定された引数 x の逆正弦の値を返します。Float64

inverse

SELECT asin(1.0) = pi() / 2, sin(asin(1)), asin(sin(1))
1	1	0.9999999999999999

float32

SELECT toTypeName(asin(1.0::Float32))
Float64

nan

SELECT asin(1.1), asin(-2), asin(inf), asin(nan)
nan	nan	nan	nan

asinh

導入バージョン: v20.12.0

逆双曲線正弦を返します。

構文

asinh(x)

引数

  • x — 角度の双曲線正弦。値の範囲: -∞ < x < +∞(U)Int* または Float* または Decimal*

戻り値

ラジアン単位の角度を返します。値の範囲: -∞ < asinh(x) < +∞Float64

基本的な使い方

SELECT asinh(0)
0

atan

導入バージョン: v1.1.0

引数の逆正接を返します。

構文

atan(x)

引数

戻り値

x のアークタンジェントを返します。Float*

使用例

SELECT atan(1);
0.7853981633974483

atan2

導入バージョン: v20.12.0

正の x 軸から点 (x, y) ≠ (0, 0) への半直線までのユークリッド平面上の角度を、ラジアンで表した atan2 を返します。

構文

atan2(y, x)

引数

戻り値

-π < θ ≤ π を満たす角度 θ をラジアン単位で返します。Float64

使用例

SELECT atan2(1, 1)
0.7853981633974483

atanh

導入バージョン: v20.12.0

逆双曲線正接を返します。

構文

atanh(x)

引数

  • x — 角度の双曲線正接の値。値の範囲: -1 < x < 1。(U)Int*Float* または Decimal*(U)Int* または Float* または Decimal*

戻り値

ラジアン単位の角度を返します。値の範囲: -∞ < atanh(x) < +∞ Float64

使用例

SELECT atanh(0)
0

cbrt

導入バージョン: v1.1.0

引数の三乗根を返します。

構文

cbrt(x)

引数

戻り値

x の立方根を返します。Float*

使用例

SELECT cbrt(8);
2

cos

導入バージョン: v1.1.0

引数のコサインを返します。

構文

cos(x)

引数

戻り値

x のコサインを返します。Float*

使用例

SELECT cos(0);
1

cosh

導入バージョン: v20.12.0

引数の双曲線余弦を返します。

構文

cosh(x)

引数

  • x — ラジアン単位の角度。取り得る値の範囲: -∞ < x < +∞(U)Int* または Float* または Decimal*

戻り値

1 ≤ cosh(x) < +∞ の範囲の値を返します。Float64

基本的な使い方

SELECT cosh(0)
1

degrees

導入バージョン: v22.2.0

ラジアンを度数に変換します。

構文

degrees(x)

引数

戻り値

x を度単位に変換した値を返します。Float64

基本的な使い方

SELECT degrees(3.141592653589793)
180

e

導入バージョン: v1.1.0

オイラー数 (e) を返します。

構文

e()

引数

  • なし。

戻り値

オイラー定数 Float64 を返します。

使用例

SELECT e();
2.718281828459045

erf

導入バージョン: v1.1.0

x が非負の場合、erf(x/(σ√2)) は、標準偏差 σ の正規分布に従う確率変数が、期待値から x を超えて離れた値を取る確率です。

構文

erf(x)

引数

戻り値

誤差関数の値を返します。Float*

3シグマルール

SELECT erf(3 / sqrt(2))
┌─erf(divide(3, sqrt(2)))─┐
│      0.9973002039367398 │
└─────────────────────────┘

erfc

導入バージョン: v1.1.0

x の値が大きい場合でも、精度を損なうことなく 1-erf(x) に近い数値を返します。

構文

erfc(x)

引数

戻り値

補誤差関数の値 Float* を返します

使用例

SELECT erfc(0);
1

exp

導入バージョン: v1.1.0

ex 乗を返します。ここで、x は関数に指定する引数です。

構文

exp(x)

引数

戻り値

e^x を返します。Float*

基本的な使い方

SELECT round(exp(-1), 4)
┌─round(exp(-1), 4)─┐
│            0.3679 │
└───────────────────┘

exp10

導入バージョン: v1.1.0

指定された引数を指数とする 10 の累乗を返します。

構文

exp10(x)

引数

戻り値

Float* 型の 10^x を返します

使用例

SELECT exp10(2);
100

exp2

導入バージョン: v1.1.0

指定された引数を指数とする 2 のべき乗を返します。

構文

exp2(x)

引数

戻り値

2^x を Float* 型で返します

使用例

SELECT exp2(3);
8

factorial

導入バージョン: v22.11.0

整数値の階乗を計算します。 0 の階乗は 1 です。同様に、factorial() 関数は任意の負の値に対しても 1 を返します。 入力引数に指定できる正の最大値は 20 です。21 以上の値を指定すると例外が発生します。

構文

factorial(n)

引数

  • n — 階乗を計算する対象の整数値。最大値は 20 です。(U)Int8/16/32/64

戻り値

入力値の階乗を UInt64 として返します。入力が 0 または負の値の場合は 1 を返します。UInt64

使用例

SELECT factorial(10)
3628800

hypot

導入バージョン: v20.12.0

直角三角形の斜辺の長さを返します。 hypot は、非常に大きい数や非常に小さい数を二乗する際に生じる問題を回避します。

構文

hypot(x, y)

引数

戻り値

直角三角形の斜辺の長さを返します。Float64

基本的な使い方

SELECT hypot(1, 1)
1.4142135623730951

intExp10

導入バージョン: v1.1.0

exp10 と同様ですが、UInt64 型の数値を返します。

構文

intExp10(x)

引数

戻り値

10^x を返します。UInt64

使用例

SELECT intExp10(2);
100

intExp2

導入バージョン: v1.1.0

exp2 と同様ですが、UInt64 型の値を返します。

構文

intExp2(x)

引数

戻り値

2^x を返します。 UInt64

使用例

SELECT intExp2(3);
8

isPrime

導入バージョン: v26.5.0

引数が素数であれば 1、そうでなければ 0 を返します。

小さい値には正確なルックアップ用ビットマップを使用し、より大きい値には決定論的な Miller-Rabin テスト を使用します。結果は、サポートされているすべての入力型に対して正確です。

より広いビット幅の符号なし整数型 (UInt128UInt256) については、代わりに isProbablePrime を使用してください。

構文

isPrime(n)

引数

  • n — 素数かどうかを判定する符号なし整数。UInt8 または UInt16 または UInt32 または UInt64

戻り値

n が素数の場合は 1、それ以外の場合は 0 を返します。UInt8

素数

SELECT isPrime(17)
1

合成数

SELECT isPrime(18)
0

大きな UInt64 型の素数

SELECT isPrime(18446744073709551557)
1

UInt64 の最大値

SELECT isPrime(18446744073709551615)
0

isProbablePrime

導入バージョン: v26.5.0

引数がおそらく素数であれば 1、確実に合成数であれば 0 を返します。

UInt8UInt16UInt32UInt64 では、結果は厳密で、 isPrime と一致します。rounds 引数は無視されます。

UInt128UInt256 では、戻り値 1 は確率的なものです。省略可能な rounds 引数で、 何回 Miller-Rabin のラウンドを実行するかを指定します。 ラウンド数を増やすほど偽陽性の確率は下がりますが、その分実行時間は長くなります。一様ランダムな witness を用いる場合、固定された合成数に対する偽陽性率は 4^(-rounds) 以下に抑えられます。デフォルトの 25 ではこの上限は 10^-15 未満、最大値の 256 では 10^-154 未満になります。

この関数は決定論的です。witness は n を seed にして生成されるため、同じ (n, rounds) の組み合わせでは常に 同じ結果になります。4^(-rounds) という上限は、一様ランダムな witness を使う場合の入力ごとの確率を表します。 一方、この関数の決定論的な seed 方式では、これは入力全体に対する割合を表します。つまり、その witness の数列にだまされる合成数は、常に 1 を返します。

構文

isProbablePrime(n[, rounds])

引数

  • n — 素数かどうかを判定する符号なし整数。UInt8 または UInt16 または UInt32 または UInt64 または UInt128 または UInt256
  • rounds[1, 256] の範囲の省略可能な正の整数定数。UInt128/UInt256 に対する Miller-Rabin のラウンド数です (より小さい型では無視されます) 。デフォルトは 25 です。UInt8 または UInt16 または UInt32 または UInt64

戻り値

n がおそらく素数なら 1、確実に合成数なら 0 を返します。UInt8

小さい素数

SELECT isProbablePrime(17)
1

小さな合成数

SELECT isProbablePrime(18)
0

最大の UInt64 の素数 (正確な結果)

SELECT isProbablePrime(18446744073709551557)
1

メルセンヌ素数 M_127 (UInt128)

SELECT isProbablePrime(toUInt128('170141183460469231731687303715884105727'))
1

Curve25519 の基礎体の素数 2^255 - 19 (UInt256)

SELECT isProbablePrime(toUInt256('57896044618658097711785492504343953926634992332820282019728792003956564819949'))
1

より高速で、信頼性は低めの判定: 5ラウンド

SELECT isProbablePrime(toUInt256('57896044618658097711785492504343953926634992332820282019728792003956564819949'), 5)
1

lgamma

導入バージョン: v1.1.0

ガンマ関数の対数を返します。

構文

lgamma(x)

引数

戻り値

x のガンマ関数の対数を返します。Float*

使用例

SELECT lgamma(5);
3.1780538303479458

log

導入バージョン: v1.1.0

引数の自然対数を返します。

構文

log(x)

別名: ln

引数

戻り値

x の自然対数を返します。Float*

使用例

SELECT log(10);
2.3025850938475476

log10

導入バージョン: v1.1.0

引数の常用対数を返します。

構文

log10(x)

引数

戻り値

x の常用対数を返します。Float*

使用例

SELECT log10(100);
2

log1p

導入バージョン: v20.12.0

log(1+x) を計算します。 x の値が小さい場合、log1p(x) の計算は log(1+x) より高精度です。

構文

log1p(x)

引数

戻り値

範囲 -∞ < log1p(x) < +∞ の値を返します。Float64

使用例

SELECT log1p(0)
0

log2

導入バージョン: v1.1.0

引数の二進対数を返します。

構文

log2(x)

引数

  • x — 2 を底とする対数を計算する対象の数です。(U)Int* または Float* または Decimal*

戻り値

x の 2 を底とする対数を返します。Float*

使用例

SELECT log2(8);
3

pi

導入バージョン: v1.1.0

pi (π) を返します。

構文

pi()

引数

  • ありません。

戻り値

pi Float64 を返します

使用例

SELECT pi();
3.141592653589793

pow

導入バージョン: v1.1.0

x の y 乗を返します。

構文

pow(x, y)

別名: power

引数

戻り値

x^y を返します。Float64

使用例

SELECT pow(2, 3);
8

proportionsZTest

導入バージョン: v22.3.0

2標本比率の Z 検定 (2つの母集団 x と y の比率を比較するための統計的検定) の検定統計量を返します。 この関数は、標準誤差について、プール推定法と非プール推定法の両方をサポートしています。 プール法では、2つの比率を平均し、標準誤差の推定にはその単一の比率を使用します。 非プール法では、2つの比率をそれぞれ個別に使用します。

構文

proportionsZTest(successes_x, successes_y, trials_x, trials_y, conf_level, pool_type)

引数

  • successes_x — 母集団 x における成功数。UInt64
  • successes_y — 母集団 y における成功数。UInt64
  • trials_x — 母集団 x における試行回数。UInt64
  • trials_y — 母集団 y における試行回数。UInt64
  • conf_level — 検定の信頼水準。Float64
  • pool_type — 標準誤差の推定に使用するプーリング方式の選択。'unpooled' または 'pooled' のいずれかです。String

戻り値

z_stat (Z統計量) 、p_val (P値) 、ci_low (信頼区間の下限) 、ci_high (信頼区間の上限) を含むタプルを返します。Tuple(Float64, Float64, Float64, Float64)

使用例

SELECT proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled');
┌─proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled')───────────────────────────────┐
│ (-0.20656724435948853,0.8363478437079654,-0.09345975390115283,0.07563797172293502) │
└────────────────────────────────────────────────────────────────────────────────────┘

radians

導入バージョン: v22.2.0

度をラジアンに変換します。

構文

radians(x)

引数

戻り値

ラジアン単位の値 Float64 を返します

使用例

SELECT radians(180)
3.141592653589793

sigmoid

導入バージョン: v20.1.0

シグモイド関数 1 / (1 + exp(-x)) を計算します。シグモイド関数は任意の実数を (0, 1) の範囲に写し、機械学習で広く使用されます。

構文

sigmoid(x)

引数

戻り値

入力値のシグモイド値を返します。範囲は (0, 1) です。Float64

基本的な使い方

SELECT sigmoid(0)
0.5

sign

導入バージョン: v21.2.0

実数の符号を返します。

構文

sign(x)

引数

戻り値

x < 0 の場合は -1x = 0 の場合は 0x > 0 の場合は 1 を返します。Int8

0 の符号

SELECT sign(0)
0

正符号

SELECT sign(1)
1

負号

SELECT sign(-1)
-1

sin

導入バージョン: v1.1.0

引数の正弦を返します。

構文

sin(x)

引数

戻り値

x の正弦を返します。

基本

SELECT sin(1.23)
0.9424888019316975

sinh

導入バージョン: v20.12.0

双曲線正弦を返します。

構文

sinh(x)

引数

  • x — ラジアン単位の角度。取り得る値の範囲: -∞ < x < +∞。(U)Int*Float*、または Decimal*

戻り値

-∞ < sinh(x) < +∞ の範囲の値を返します。Float64

使用例

SELECT sinh(0)
0

sqrt

導入バージョン: v1.1.0

引数の平方根を返します。

構文

sqrt(x)

引数

戻り値

x の平方根を返します Float*

使用例

SELECT sqrt(16);
4

tan

導入バージョン: v1.1.0

引数の正接を返します。

構文

tan(x)

引数

戻り値

x の正接を返します。Float*

使用例

SELECT tan(0);
0

tanh

導入バージョン: v20.1.0

双曲線正接を返します。

構文

tanh(x)

引数

  • x — ラジアン単位の角度。取り得る値の範囲: -∞ < x < +∞。(U)Int* または Float* または Decimal*

戻り値

-1 < tanh(x) < 1 の範囲の値を返します。Float*

使用例

SELECT tanh(0)
0

tgamma

導入バージョン: v1.1.0

ガンマ関数を返します。

構文

tgamma(x)

引数

戻り値

ガンマ関数の値を返します。Float*

使用例

使用例

SELECT tgamma(5);
24

widthBucket

導入バージョン: v23.3.0

範囲 low から highcount 個の等幅のバケットに分割したヒストグラムにおいて、パラメーター operand が属するバケット番号を返します。operandlow より小さい場合は 0 を返し、operandhigh 以上の場合は count+1 を返します。 また、他のデータベースとの互換性のために、WIDTH_BUCKET という大文字と小文字を区別しない alias も用意されています。

構文

widthBucket(operand, low, high, count)

別名: width_bucket

引数

戻り値

バケット番号を整数で返します。operand < low の場合は 0 を返し、operand >= high の場合は count+1 を返します。UInt8/16/32/64

使用例

SELECT widthBucket(10.15, -8.6, 23, 18)
11
Navigation