ClickHouse/docs/ja/sql-reference/functions/math-functions.md
2024-11-18 11:58:58 +09:00

19 KiB
Raw Blame History

slug sidebar_position sidebar_label
/ja/sql-reference/functions/math-functions 125 数学関数

数学関数

e

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

構文

e()

返される値

型: Float64

pi

$\pi$パイ)を返します。

構文

pi()

返される値

型: Float64

exp

$x$を指定した引数として、$e^{x}$を返します。

構文

exp(x)

引数

クエリ:

SELECT round(exp(-1), 4);

結果:

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

返される値

型: Float*

log

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

構文

log(x)

別名: ln(x)

引数

返される値

型: Float*

exp2

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

構文

exp2(x)

引数

返される値

型: Float*

intExp2

exp のように挙動しますが、UInt64を返します。

構文

intExp2(x)

log2

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

構文

log2(x)

引数

返される値

型: Float*

exp10

指定した引数の10のべき乗を返します。

構文

exp10(x)

引数

返される値

型: Float*

intExp10

exp10 のように挙動しますが、UInt64を返します。

構文

intExp10(x)

log10

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

構文

log10(x)

引数

返される値

型: Float*

sqrt

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

sqrt(x)

引数

返される値

型: Float*

cbrt

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

cbrt(x)

引数

返される値

型: Float*

erf

x が非負である場合、erf(\frac{x}{\sigma\sqrt{2}}) は、標準偏差 \sigma を持つ正規分布において、期待値から x を超える値を取る確率です。

構文

erf(x)

引数

返される値

型: Float*

3 sigma ルール)

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

erfc

大きな x 値に対して精度を失うことなく 1-erf(x) に近い数値を返します。

構文

erfc(x)

引数

返される値

型: Float*

lgamma

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

構文

lgamma(x)

引数

返される値

型: Float*

tgamma

ガンマ関数を返します。

構文

gamma(x)

引数

返される値

型: Float*

sin

引数の正弦を返します。

構文

sin(x)

引数

返される値

型: Float*

クエリ:

SELECT sin(1.23);
0.9424888019316975

cos

引数の余弦を返します。

構文

cos(x)

引数

返される値

型: Float*

tan

引数の正接を返します。

構文

tan(x)

引数

返される値

型: Float*

asin

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

構文

asin(x)

引数

返される値

型: Float*

acos

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

構文

acos(x)

引数

返される値

型: Float*

atan

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

構文

atan(x)

引数

返される値

型: Float*

pow

x^y を返します。

構文

pow(x, y)

別名: power(x, y)

引数

返される値

型: Float64

cosh

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

構文

cosh(x)

引数

  • x — 角度(ラジアン)。区間の値: $-\infty \lt x \lt +\infty$。 (U)Int*, Float* または Decimal*

返される値

  • 区間: $1 \le cosh(x) \lt +\infty$。

型: Float64

SELECT cosh(0);

結果:

┌─cosh(0)──┐
│        1 │
└──────────┘

acosh

inverse hyperbolic 余弦を返します。

構文

acosh(x)

引数

  • x — 角度の双曲線余弦。区間の値: $1 \le x \lt +\infty$。 (U)Int*, Float* または Decimal*

返される値

  • 角度(ラジアン)。区間の値: $0 \le acosh(x) \lt +\infty$。

型: Float64

SELECT acosh(1);

結果:

┌─acosh(1)─┐
│        0 │
└──────────┘

sinh

双曲線正弦を返します。

構文

sinh(x)

引数

  • x — 角度(ラジアン)。区間の値: $-\infty \lt x \lt +\infty$。 (U)Int*, Float* または Decimal*

返される値

  • 区間の値: $-\infty \lt sinh(x) \lt +\infty$。

型: Float64

SELECT sinh(0);

結果:

┌─sinh(0)──┐
│        0 │
└──────────┘

asinh

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

構文

asinh(x)

引数

  • x — 角度の双曲線正弦。区間の値: $-\infty \lt x \lt +\infty$。 (U)Int*, Float* または Decimal*

返される値

  • 角度(ラジアン)。区間の値: $-\infty \lt asinh(x) \lt +\infty$。

型: Float64

SELECT asinh(0);

結果:

┌─asinh(0)─┐
│        0 │
└──────────┘

tanh

双曲線正接を返します。

構文

tanh(x)

引数

  • x — 角度(ラジアン)。区間の値: $-\infty \lt x \lt +\infty$。 (U)Int*, Float* または Decimal*

返される値

  • 区間の値: $-1 \lt tanh(x) \lt 1$。

型: Float*

SELECT tanh(0);

結果:

0

atanh

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

構文

atanh(x)

引数

返される値

  • 角度(ラジアン)。区間の値: $-\infty \lt atanh(x) \lt +\infty$。

型: Float64

SELECT atanh(0);

結果:

┌─atanh(0)─┐
│        0 │
└──────────┘

atan2

atan2 を、ユークリッド平面における角度として返し、ラジアンで表されますが、正の x 軸と点 (x, y) ≠ (0, 0) への光線との間のものです。

構文

atan2(y, x)

引数

返される値

  • 角度 θ の値として、-\pi \lt 0 \le \pi の区間で、ラジアンで表されます。

型: Float64

SELECT atan2(1, 1);

結果:

┌────────atan2(1, 1)─┐
│ 0.7853981633974483 │
└────────────────────┘

hypot

直角三角形の斜辺の長さを返します。Hypot は非常に大きな数や非常に小さな数を平方する際の問題を回避します。

構文

hypot(x, y)

引数

返される値

  • 直角三角形の斜辺の長さ。

型: Float64

SELECT hypot(1, 1);

結果:

┌────────hypot(1, 1)─┐
│ 1.4142135623730951 │
└────────────────────┘

log1p

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

構文

log1p(x)

引数

返される値

  • 値の範囲: $-\infty < log1p(x) \lt +\infty$。

型: Float64

SELECT log1p(0);

結果:

┌─log1p(0)─┐
│        0 │
└──────────┘

sign

実数の符号を返します。

構文

sign(x)

引数

  • x — 値は -\infty から +\infty まで。ClickHouse のすべての数値型をサポートしています。

返される値

  • x < 0 の場合は -1
  • x = 0 の場合は 0
  • x > 0 の場合は 1

型: Int8

ゼロ値の符号:

SELECT sign(0);

結果:

┌─sign(0)─┐
│       0 │
└─────────┘

正の値の符号:

SELECT sign(1);

結果:

┌─sign(1)─┐
│       1 │
└─────────┘

負の値の符号:

SELECT sign(-1);

結果:

┌─sign(-1)─┐
│       -1 │
└──────────┘

sigmoid

sigmoid 関数を返します。

構文

sigmoid(x)

パラメータ

返される値

  • 0から1の間の sigmoid 曲線に沿った対応する値。Float64

クエリ:

SELECT round(sigmoid(x), 5) FROM (SELECT arrayJoin([-1, 0, 1]) AS x);

結果:

0.26894
0.5
0.73106

degrees

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

構文

degrees(x)

引数

返される値

  • 度で表された値。Float64

SELECT degrees(3.141592653589793);

結果:

┌─degrees(3.141592653589793)─┐
│                        180 │
└────────────────────────────┘

radians

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

構文

radians(x)

引数

返される値

  • ラジアンで表された値。

型: Float64

SELECT radians(180);

結果:

┌──────radians(180)─┐
│ 3.141592653589793 │
└───────────────────┘

factorial

整数値の階乗を計算します。UInt(8|16|32|64) および Int(8|16|32|64) を含む任意のネイティブ整数型で動作します。戻りの型は UInt64 です。

0 の階乗は 1 です。同様に、factorial() 関数は任意の負の値に対して 1 を返します。入力引数の最大正の値は 20 で、21 以上の値は例外をスローします。

構文

factorial(n)

SELECT factorial(10);

結果:

┌─factorial(10)─┐
│       3628800 │
└───────────────┘

width_bucket

ヒストグラムにおいて、operandlow から high までの範囲に分割された count 等幅のバケットのうち、どのバケットに属するかを返します。operand < low の場合は 0 を返し、operand >= high の場合は count+1 を返します。

operandlowhigh は任意のネイティブ数値型にすることができます。 count は符号なしのネイティブ整数型にすることができ、その値はゼロであってはなりません。

構文

widthBucket(operand, low, high, count)

別名: WIDTH_BUCKET

SELECT widthBucket(10.15, -8.6, 23, 18);

結果:

┌─widthBucket(10.15, -8.6, 23, 18)─┐
│                               11 │
└──────────────────────────────────┘

proportionsZTest

二つの母集団 xy の比率を比較するための統計的検定である2比率Z検定の統計量を返します。

構文

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

:::note 引数 pool_type に関して: プールされたバージョンでは、2つの比率が平均され、1つの比率だけが標準誤差を推定するために使用されます。プールされていないバージョンでは、2つの比率が別々に使用されます。 :::

返される値

  • z_stat: Z 統計量。 Float64
  • p_val: P 値。 Float64
  • ci_low: 下側の信頼区間。 Float64
  • ci_high: 上側の信頼区間。 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) │
└────────────────────────────────────────────────────────────────────────────────────┘