수학 함수

수학 함수 (Mathematical Functions)

삼각함수, 로그·지수, 감마함수, 팩토리얼, 소수 판별, 히스토그램 버킷 등 다양한 수학 연산을 제공하는 함수들이에요.

출처: 문서

본문

acos

도입: v1.1.0

인자의 아크코사인(arccosine)을 반환해요.

구문 (Syntax)

acos(x)

인자 (Arguments)

  • x — 아크코사인을 구할 값. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

x의 아크코사인. Float*

예시 (Examples)

SELECT acos(0.5);
1.0471975511965974

acosh

도입: v20.12.0

역쌍곡코사인(inverse hyperbolic cosine)을 반환해요.

구문 (Syntax)

acosh(x)

인자 (Arguments)

  • x — 각도의 쌍곡코사인. 구간 값: 1 ≤ x < +∞. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

라디안 단위의 각도. 구간 값: 0 ≤ acosh(x) < +∞. Float64

예시 (Examples)

SELECT acosh(1)
0

asin

도입: v1.1.0

제공된 인자의 아크사인(arcsine)을 계산해요. [-1, 1] 범위의 인자에 대해 [-pi() / 2, pi() / 2] 범위의 값을 반환해요.

구문 (Syntax)

asin(x)

인자 (Arguments)

  • x — 아크사인을 계산할 인자. (U)Int* 또는 Float* 또는 Decimal

반환 값 (Returned value)

제공된 인자 x의 아크사인 값. Float64

예시 (Examples)

역함수

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

역쌍곡사인(inverse hyperbolic sine)을 반환해요.

구문 (Syntax)

asinh(x)

인자 (Arguments)

  • x — 각도의 쌍곡사인. 구간 값: -∞ < x < +∞. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

라디안 단위의 각도. 구간 값: -∞ < asinh(x) < +∞. Float64

예시 (Examples)

기본 사용

SELECT asinh(0)
0

atan

도입: v1.1.0

인자의 아크탄젠트(arc tangent)를 반환해요.

구문 (Syntax)

atan(x)

인자 (Arguments)

  • x — 아크탄젠트를 구할 값. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

x의 아크탄젠트. Float*

예시 (Examples)

SELECT atan(1);
0.7853981633974483

atan2

도입: v20.12.0

유클리드 평면에서 양의 x 축과 점 (x, y) ≠ (0, 0)으로의 반직선 사이의 각도(라디안)인 atan2를 반환해요.

구문 (Syntax)

atan2(y, x)

인자 (Arguments)

  • y — 반직선이 지나가는 점의 y 좌표. (U)Int* 또는 Float* 또는 BFloat16 또는 Decimal*
  • x — 반직선이 지나가는 점의 x 좌표. (U)Int* 또는 Float* 또는 BFloat16 또는 Decimal*

반환 값 (Returned value)

-π < θ ≤ π를 만족하는 각도 θ(라디안). Float64

예시 (Examples)

SELECT atan2(1, 1)
0.7853981633974483

atanh

도입: v20.12.0

역쌍곡탄젠트(inverse hyperbolic tangent)를 반환해요.

구문 (Syntax)

atanh(x)

인자 (Arguments)

  • x — 각도의 쌍곡탄젠트. 구간 값: -1 < x < 1. (U)Int*, Float* 또는 Decimal*. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

라디안 단위의 각도. 구간 값: -∞ < atanh(x) < +∞. Float64

예시 (Examples)

SELECT atanh(0)
0

cbrt

도입: v1.1.0

인자의 세제곱근(cubic root)을 반환해요.

구문 (Syntax)

cbrt(x)

인자 (Arguments)

  • x — 세제곱근을 구할 값. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

x의 세제곱근. Float*

예시 (Examples)

SELECT cbrt(8);
2

cos

도입: v1.1.0

인자의 코사인을 반환해요.

구문 (Syntax)

cos(x)

인자 (Arguments)

  • x — 라디안 단위의 각도. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

x의 코사인. Float*

예시 (Examples)

SELECT cos(0);
1

cosh

도입: v20.12.0

인자의 쌍곡코사인(hyperbolic cosine)을 반환해요.

구문 (Syntax)

cosh(x)

인자 (Arguments)

  • x — 라디안 단위의 각도. 구간 값: -∞ < x < +∞. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

구간 값: 1 ≤ cosh(x) < +∞. Float64

예시 (Examples)

기본 사용

SELECT cosh(0)
1

degrees

도입: v22.2.0

라디안을 도(degree)로 변환해요.

구문 (Syntax)

degrees(x)

인자 (Arguments)

  • x — 라디안 단위의 입력. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

도 단위의 x 값. Float64

예시 (Examples)

기본 사용

SELECT degrees(3.141592653589793)
180

e

도입: v1.1.0

오일러 상수(e)를 반환해요.

구문 (Syntax)

e()

인자 (Arguments)

  • 없음.

반환 값 (Returned value)

오일러 상수. Float64

예시 (Examples)

SELECT e();
2.718281828459045

erf

도입: v1.1.0

x가 0 이상일 때, erf(x/(σ√2))는 표준편차 σ를 가진 정규 분포의 확률 변수가 기댓값에서 x보다 더 멀리 떨어진 값을 가질 확률이에요.

구문 (Syntax)

erf(x)

인자 (Arguments)

  • x — 오차 함수 값을 계산할 값. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

오차 함수 값. Float*

예시 (Examples)

3시그마 규칙

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

erfc

도입: v1.1.0

x 값에서 정밀도를 잃지 않고 1-erf(x)에 가까운 수를 반환해요.

구문 (Syntax)

erfc(x)

인자 (Arguments)

  • x — 오차 함수 값을 구할 값. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

여오차 함수(complementary error function) 값. Float*

예시 (Examples)

SELECT erfc(0);
1

exp

도입: v1.1.0

x를 지수로 하는 e의 거듭제곱을 반환해요 (x는 함수에 주어진 인자).

구문 (Syntax)

exp(x)

인자 (Arguments)

  • x — 지수. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

e^x. Float*

예시 (Examples)

기본 사용

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

exp10

도입: v1.1.0

주어진 인자를 지수로 하는 10의 거듭제곱을 반환해요.

구문 (Syntax)

exp10(x)

인자 (Arguments)

  • x — 지수. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

10^x. Float*

예시 (Examples)

SELECT exp10(2);
100

exp2

도입: v1.1.0

주어진 인자를 지수로 하는 2의 거듭제곱을 반환해요.

구문 (Syntax)

exp2(x)

인자 (Arguments)

  • x — 지수. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

2^x. Float*

예시 (Examples)

SELECT exp2(3);
8

factorial

도입: v22.11.0

정수 값의 팩토리얼을 계산해요. 0의 팩토리얼은 1이에요. 마찬가지로 factorial() 함수는 음수 값에 대해 1을 반환해요. 입력 인자의 최대 양수 값은 20이며, 21 이상이면 예외가 발생해요.

구문 (Syntax)

factorial(n)

인자 (Arguments)

  • n — 팩토리얼을 계산할 정수 값. 최대 값은 20. (U)Int8/16/32/64

반환 값 (Returned value)

입력의 팩토리얼을 UInt64로 반환해요. 입력이 0이거나 음수면 1을 반환해요. UInt64

예시 (Examples)

SELECT factorial(10)
3628800

hypot

도입: v20.12.0

직각삼각형 빗변의 길이를 반환해요. hypot는 매우 크거나 매우 작은 수를 제곱할 때 생기는 문제를 피해요.

구문 (Syntax)

hypot(x, y)

인자 (Arguments)

  • x — 직각삼각형의 첫 번째 밑변(cathetus). (U)Int* 또는 Float* 또는 BFloat16 또는 Decimal*
  • y — 직각삼각형의 두 번째 밑변. (U)Int* 또는 Float* 또는 BFloat16 또는 Decimal*

반환 값 (Returned value)

직각삼각형 빗변의 길이. Float64

예시 (Examples)

기본 사용

SELECT hypot(1, 1)
1.4142135623730951

intExp10

도입: v1.1.0

exp10과 같지만 UInt64 숫자를 반환해요.

구문 (Syntax)

intExp10(x)

인자 (Arguments)

  • x — 지수. Int* 또는 UInt* 또는 Float*

반환 값 (Returned value)

10^x. UInt64

예시 (Examples)

SELECT intExp10(2);
100

intExp2

도입: v1.1.0

exp2와 같지만 UInt64 숫자를 반환해요.

구문 (Syntax)

intExp2(x)

인자 (Arguments)

  • x — 지수. Int* 또는 UInt* 또는 Float*

반환 값 (Returned value)

2^x. UInt64

예시 (Examples)

SELECT intExp2(3);
8

isPrime

도입: v26.5.0

인자가 소수이면 1, 아니면 0을 반환해요.

작은 값은 정확한 조회 비트맵을, 큰 값은 결정적 Miller-Rabin 테스트를 사용해요. 지원되는 모든 입력 타입에 대해 결과는 정확해요.

더 넓은 부호 없는 정수 타입(UInt128, UInt256)에는 isProbablePrime을 대신 사용하세요.

구문 (Syntax)

isPrime(n)

인자 (Arguments)

  • n — 소수인지 검사할 부호 없는 정수. UInt8 또는 UInt16 또는 UInt32 또는 UInt64

반환 값 (Returned value)

n이 소수면 1, 아니면 0. UInt8

예시 (Examples)

소수

SELECT isPrime(17)
1

합성수

SELECT isPrime(18)
0

큰 UInt64 소수

SELECT isPrime(18446744073709551557)
1

최대 UInt64 값

SELECT isPrime(18446744073709551615)
0

isProbablePrime

도입: v26.5.0

인자가 소수일 가능성이 높으면 1, 확실히 합성수면 0을 반환해요.

UInt8, UInt16, UInt32, UInt64에 대해 결과는 정확하며 isPrime과 일치해요. rounds 인자는 무시돼요.

UInt128UInt256에 대해 반환 값 1은 확률적이에요. 선택 사항 rounds 인자는 Miller-Rabin 라운드 수를 조절해요: 라운드가 많을수록 오탐(false positive) 확률이 줄고 실행 시간이 늘어나요. 균등 랜덤 증인(witness)에서 고정된 합성수의 오탐률은 4^(-rounds)로 상한이 정해지는데, 기본값 25는 이 상한을 10^-15 아래로, 최대값 25610^-154 아래로 유지해요.

함수는 결정적이에요: 증인은 n에서 시드되므로 같은 (n, rounds) 쌍은 항상 같은 결과를 내요. 4^(-rounds) 상한은 균등 랜덤 증인 아래의 입력별 확률이에요. 결정적 시딩에서는 대신 입력 전체에 대한 비율을 나타내요 — 자신의 증인 시퀀스를 속이는 합성수는 반복적으로 1을 반환해요.

구문 (Syntax)

isProbablePrime(n[, rounds])

인자 (Arguments)

  • n — 소수인지 검사할 부호 없는 정수. UInt8 또는 UInt16 또는 UInt32 또는 UInt64 또는 UInt128 또는 UInt256
  • rounds — 선택 사항. [1, 256]의 양의 정수 상수. UInt128/UInt256에 대한 Miller-Rabin 라운드 수(더 좁은 타입에서는 무시). 기본값 25. UInt8 또는 UInt16 또는 UInt32 또는 UInt64

반환 값 (Returned value)

n이 소수일 가능성이 높으면 1, 확실히 합성수면 0. UInt8

예시 (Examples)

작은 소수

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

감마 함수의 로그를 반환해요.

구문 (Syntax)

lgamma(x)

인자 (Arguments)

  • x — 감마 함수의 로그를 계산할 숫자. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

x의 감마 함수 로그. Float*

예시 (Examples)

SELECT lgamma(5);
3.1780538303479458

log

도입: v1.1.0

인자의 자연로그를 반환해요.

구문 (Syntax)

log(x)

별칭 (Aliases): ln

인자 (Arguments)

  • x — 자연로그를 계산할 숫자. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

x의 자연로그. Float*

예시 (Examples)

SELECT log(10);
2.3025850938475476

log10

도입: v1.1.0

인자의 상용로그를 반환해요.

구문 (Syntax)

log10(x)

인자 (Arguments)

  • x — 상용로그를 계산할 숫자. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

x의 상용로그. Float*

예시 (Examples)

SELECT log10(100);
2

log1p

도입: v20.12.0

log(1+x)를 계산해요. 작은 x 값에서 log1p(x)는 log(1+x)보다 더 정확해요.

구문 (Syntax)

log1p(x)

인자 (Arguments)

  • x — 구간 값: -1 < x < +∞. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

구간 값: -∞ < log1p(x) < +∞. Float64

예시 (Examples)

SELECT log1p(0)
0

log2

도입: v1.1.0

인자의 이진로그를 반환해요.

구문 (Syntax)

log2(x)

인자 (Arguments)

  • x — 이진로그를 계산할 숫자. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

x의 이진로그. Float*

예시 (Examples)

SELECT log2(8);
3

pi

도입: v1.1.0

파이(π)를 반환해요.

구문 (Syntax)

pi()

인자 (Arguments)

  • 없음.

반환 값 (Returned value)

파이. Float64

예시 (Examples)

SELECT pi();
3.141592653589793

pow

도입: v1.1.0

x의 y 제곱을 반환해요.

구문 (Syntax)

pow(x, y)

별칭 (Aliases): power

인자 (Arguments)

  • x — 밑(base). (U)Int8/16/32/64 또는 Float* 또는 BFloat16 또는 Decimal*
  • y — 지수. (U)Int8/16/32/64 또는 Float* 또는 BFloat16 또는 Decimal*

반환 값 (Returned value)

x^y. Float64

예시 (Examples)

SELECT pow(2, 3);
8

proportionsZTest

도입: v22.3.0

두 모집단 x와 y의 비율을 비교하는 통계 검정인 두 비율 Z-검정의 검정 통계량을 반환해요. 이 함수는 표준 오차에 대해 pooled(통합)와 unpooled(비통합) 추정 방법을 모두 지원해요. pooled 버전에서는 두 비율의 평균을 내고 하나의 비율만으로 표준 오차를 추정해요. unpooled 버전에서는 두 비율을 각각 따로 사용해요.

구문 (Syntax)

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

인자 (Arguments)

  • successes_x — 모집단 x의 성공 횟수. UInt64
  • successes_y — 모집단 y의 성공 횟수. UInt64
  • trials_x — 모집단 x의 시행 횟수. UInt64
  • trials_y — 모집단 y의 시행 횟수. UInt64
  • conf_level — 검정의 신뢰 수준. Float64
  • pool_type — 표준 오차 추정의 통합 방법 선택. 'unpooled' 또는 'pooled' 중 하나. String

반환 값 (Returned value)

z_stat(Z 통계량), p_val(P 값), ci_low(하한 신뢰구간), ci_high(상한 신뢰구간)를 담은 튜플. Tuple(Float64, Float64, Float64, Float64)

예시 (Examples)

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

도를 라디안으로 변환해요.

구문 (Syntax)

radians(x)

인자 (Arguments)

  • x — 도 단위의 입력. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

라디안 단위의 값. Float64

예시 (Examples)

SELECT radians(180)
3.141592653589793

sigmoid

도입: v20.1.0

시그모이드 함수를 계산해요: 1 / (1 + exp(-x)). 시그모이드 함수는 실수를 (0, 1) 범위로 매핑하며 머신러닝에서 흔히 쓰여요.

구문 (Syntax)

sigmoid(x)

인자 (Arguments)

  • x — 입력 값. (U)Int* 또는 Float*

반환 값 (Returned value)

(0, 1) 범위의 입력 값의 시그모이드. Float64

예시 (Examples)

기본 사용

SELECT sigmoid(0)
0.5

sign

도입: v21.2.0

실수의 부호를 반환해요.

구문 (Syntax)

sign(x)

인자 (Arguments)

  • x — -∞부터 +∞까지의 값. (U)Int* 또는 Decimal* 또는 Float*

반환 값 (Returned value)

x < 0이면 -1, x = 0이면 0, x > 0이면 1. Int8

예시 (Examples)

0의 부호

SELECT sign(0)
0

양수의 부호

SELECT sign(1)
1

음수의 부호

SELECT sign(-1)
-1

sin

도입: v1.1.0

인자의 사인을 반환해요.

구문 (Syntax)

sin(x)

인자 (Arguments)

  • x — 사인을 반환할 숫자. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

x의 사인.

예시 (Examples)

간단한 예

SELECT sin(1.23)
0.9424888019316975

sinh

도입: v20.12.0

쌍곡사인(hyperbolic sine)을 반환해요.

구문 (Syntax)

sinh(x)

인자 (Arguments)

  • x — 라디안 단위의 각도. 구간 값: -∞ < x < +∞. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

구간 값: -∞ < sinh(x) < +∞. Float64

예시 (Examples)

SELECT sinh(0)
0

sqrt

도입: v1.1.0

인자의 제곱근을 반환해요.

구문 (Syntax)

sqrt(x)

인자 (Arguments)

  • x — 제곱근을 구할 숫자. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

x의 제곱근. Float*

예시 (Examples)

SELECT sqrt(16);
4

tan

도입: v1.1.0

인자의 탄젠트를 반환해요.

구문 (Syntax)

tan(x)

인자 (Arguments)

  • x — 라디안 단위의 각도. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

x의 탄젠트. Float*

예시 (Examples)

SELECT tan(0);
0

tanh

도입: v20.1.0

쌍곡탄젠트를 반환해요.

구문 (Syntax)

tanh(x)

인자 (Arguments)

  • x — 라디안 단위의 각도. 구간 값: -∞ < x < +∞. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

구간 값: -1 < tanh(x) < 1. Float*

예시 (Examples)

SELECT tanh(0)
0

tgamma

도입: v1.1.0

감마 함수를 반환해요.

구문 (Syntax)

tgamma(x)

인자 (Arguments)

  • x — 감마 함수를 계산할 숫자. (U)Int* 또는 Float* 또는 Decimal*

반환 값 (Returned value)

감마 함수 값. Float*

예시 (Examples)

SELECT tgamma(5);
24

widthBucket

도입: v23.3.0

low에서 high까지의 범위를 count개의 동일 너비 버킷으로 나눈 히스토그램에서 매개변수 operand가 속한 버킷의 번호를 반환해요. operandlow보다 작으면 0, operandhigh 이상이면 count+1을 반환해요. 다른 데이터베이스와의 호환을 위해 대소문자 구분 없는 별칭 WIDTH_BUCKET도 있어요.

구문 (Syntax)

widthBucket(operand, low, high, count)

별칭 (Aliases): width_bucket

인자 (Arguments)

  • operand — 버킷을 결정할 값. (U)Int8/16/32/64
  • low — 히스토그램 범위의 하한. (U)Int8/16/32/64
  • high — 히스토그램 범위의 상한. (U)Int8/16/32/64
  • count — 동일 너비 버킷 수. 0일 수 없어요. UInt8/16/32/64

반환 값 (Returned value)

버킷 번호를 정수로 반환해요. operand < low면 0, operand >= high면 count+1. UInt8/16/32/64

예시 (Examples)

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

더 알아보기 (Learn more)