수학 함수
수학 함수 (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 인자는 무시돼요.
UInt128과 UInt256에 대해 반환 값 1은 확률적이에요. 선택 사항 rounds 인자는 Miller-Rabin 라운드 수를 조절해요: 라운드가 많을수록 오탐(false positive) 확률이 줄고 실행 시간이 늘어나요. 균등 랜덤 증인(witness)에서 고정된 합성수의 오탐률은 4^(-rounds)로 상한이 정해지는데, 기본값 25는 이 상한을 10^-15 아래로, 최대값 256은 10^-154 아래로 유지해요.
함수는 결정적이에요: 증인은 n에서 시드되므로 같은 (n, rounds) 쌍은 항상 같은 결과를 내요. 4^(-rounds) 상한은 균등 랜덤 증인 아래의 입력별 확률이에요. 결정적 시딩에서는 대신 입력 전체에 대한 비율을 나타내요 — 자신의 증인 시퀀스를 속이는 합성수는 반복적으로 1을 반환해요.
구문 (Syntax)
isProbablePrime(n[, rounds])
인자 (Arguments)
n— 소수인지 검사할 부호 없는 정수.UInt8또는UInt16또는UInt32또는UInt64또는UInt128또는UInt256rounds— 선택 사항.[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의 성공 횟수.UInt64successes_y— 모집단 y의 성공 횟수.UInt64trials_x— 모집단 x의 시행 횟수.UInt64trials_y— 모집단 y의 시행 횟수.UInt64conf_level— 검정의 신뢰 수준.Float64pool_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가 속한 버킷의 번호를 반환해요. operand가 low보다 작으면 0, operand가 high 이상이면 count+1을 반환해요. 다른 데이터베이스와의 호환을 위해 대소문자 구분 없는 별칭 WIDTH_BUCKET도 있어요.
구문 (Syntax)
widthBucket(operand, low, high, count)
별칭 (Aliases): width_bucket
인자 (Arguments)
operand— 버킷을 결정할 값.(U)Int8/16/32/64low— 히스토그램 범위의 하한.(U)Int8/16/32/64high— 히스토그램 범위의 상한.(U)Int8/16/32/64count— 동일 너비 버킷 수. 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