수학 함수와 연산자

수학 함수와 연산자 (Mathematical functions and operators)

이 문서는 Trino의 수학 함수와 연산자를 설명합니다. 기본적인 사칙연산부터 삼각 함수, 난수, 통계 함수까지 다양한 수학 기능을 배울 수 있어요.

출처: 문서

본문

수학 연산자 (Mathematical operators)

연산자 설명
+ 덧셈 (Addition)
- 뺄셈 (Subtraction)
* 곱셈 (Multiplication)
/ 나눗셈 (정수 나눗셈은 절삭(truncation) 수행)
% 모듈로, 나머지 (Modulo)

수학 함수 (Mathematical functions)

abs(x) → [입력과 동일]

x의 절댓값을 반환합니다.

cbrt(x) → double

x의 세제곱근을 반환합니다.

ceil(x) → [입력과 동일]

ceiling()의 별칭입니다.

ceiling(x) → [입력과 동일]

x를 가장 가까운 정수로 올림한 값을 반환합니다.

degrees(x) → double

라디안 단위의 각도 x를 도(degree)로 변환합니다.

e() → double

오일러 수(Euler's number) 상수를 반환합니다.

exp(x) → double

오일러 수를 x 제곱한 값을 반환합니다.

floor(x) → [입력과 동일]

x를 가장 가까운 정수로 내림한 값을 반환합니다.

ln(x) → double

x의 자연로그를 반환합니다.

log(b, x) → double

밑이 bx의 로그를 반환합니다.

log2(x) → double

밑이 2인 x의 로그를 반환합니다.

log10(x) → double

밑이 10인 x의 로그를 반환합니다.

mod(n, m) → [입력과 동일]

nm으로 나눈 나머지(모듈로)를 반환합니다.

pi() → double

원주율(파이) 상수를 반환합니다.

pow(x, p) → double

power()의 별칭입니다.

power(x, p) → double

xp 제곱을 반환합니다.

radians(x) → double

도 단위의 각도 x를 라디안으로 변환합니다.

round(x) → [입력과 동일]

x를 가장 가까운 정수로 반올림한 값을 반환합니다.

round(x, d) → [입력과 동일]

x를 소수점 d 자리로 반올림한 값을 반환합니다.

sign(x) → [입력과 동일]

x의 시그넘 함수 값을 반환합니다:

  • 인수가 0이면 0,
  • 인수가 0보다 크면 1,
  • 인수가 0보다 작으면 -1.

부동 소수점 인수의 경우 함수는 추가로 다음을 반환합니다:

  • 인수가 -0이면 -0,
  • 인수가 NaN이면 NaN.

sqrt(x) → double

x의 제곱근을 반환합니다.

truncate(x) → [입력과 동일]

소수점 뒤의 자릿수를 버려 x를 정수로 절삭한 값을 반환합니다.

truncate(x, d) → [입력과 동일]

x를 소수점 d 자리로 절삭한 값을 반환합니다. d는 음수일 수 있는데, 이 경우 소수점 왼쪽 d 자릿수가 0이 됩니다.

width_bucket(x, bound1, bound2, n) → bigint

지정된 bound1bound2 경계와 n개의 버킷을 가진 등폭(equi-width) 히스토그램에서 x의 버킷 번호를 반환합니다.

width_bucket(x, bins) → bigint

배열 bins가 지정한 구간에 따른 x의 버킷 번호를 반환합니다. bins 파라미터는 double 배열이어야 하며 오름차순으로 정렬된 것으로 가정합니다.

난수 함수 (Random functions)

rand() → double

random()의 별칭입니다.

random() → double

0.0 이상 1.0 미만 범위의 의사 난수를 반환합니다.

random(n) → [입력과 동일]

0 이상 n 미만 사이의 의사 난수를 반환합니다.

random(m, n) → [입력과 동일]

m 이상 n 미만 사이의 의사 난수를 반환합니다.

삼각 함수 (Trigonometric functions)

모든 삼각 함수 인수는 라디안으로 표현됩니다. 단위 변환 함수 degrees()radians()를 참고하세요.

  • acos(x) → double: x의 아크코사인을 반환합니다.
  • asin(x) → double: x의 아크사인을 반환합니다.
  • atan(x) → double: x의 아크탄젠트를 반환합니다.
  • atan2(y, x) → double: y / x의 아크탄젠트를 반환합니다.
  • cos(x) → double: x의 코사인을 반환합니다.
  • cosh(x) → double: x의 쌍곡코사인을 반환합니다.
  • sin(x) → double: x의 사인을 반환합니다.
  • sinh(x) → double: x의 쌍곡사인을 반환합니다.
  • tan(x) → double: x의 탄젠트를 반환합니다.
  • tanh(x) → double: x의 쌍곡탄젠트를 반환합니다.

기하 함수 (Geometric functions)

cosine_distance(array(double), array(double)) → double

두 밀집 벡터 사이의 코사인 거리를 계산합니다:

SELECT cosine_distance(ARRAY[1.0, 2.0], ARRAY[3.0, 4.0]);
-- 0.01613008990009257

cosine_distance(x, y) → double

두 희소 벡터 사이의 코사인 거리를 계산합니다:

SELECT cosine_distance(MAP(ARRAY['a'], ARRAY[1.0]), MAP(ARRAY['a'], ARRAY[2.0]));
-- 0.0

cosine_similarity(array(double), array(double)) → double

두 밀집 벡터의 코사인 유사도를 계산합니다:

SELECT cosine_similarity(ARRAY[1.0, 2.0], ARRAY[3.0, 4.0]);
-- 0.9838699100999074

cosine_similarity(x, y) → double

두 희소 벡터의 코사인 유사도를 계산합니다:

SELECT cosine_similarity(MAP(ARRAY['a'], ARRAY[1.0]), MAP(ARRAY['a'], ARRAY[2.0]));
-- 1.0

부동 소수점 함수 (Floating point functions)

  • infinity() → double: 양의 무한대를 나타내는 상수를 반환합니다.
  • is_finite(x) → boolean: x가 유한한지 판단합니다.
  • is_infinite(x) → boolean: x가 무한인지 판단합니다.
  • is_nan(x) → boolean: x가 숫자가 아닌지(NaN) 판단합니다.
  • nan() → double: 숫자가 아님(not-a-number)을 나타내는 상수를 반환합니다.

진법 변환 함수 (Base conversion functions)

from_base(string, radix) → bigint

string을 밑이 radix인 숫자로 해석한 값을 반환합니다.

to_base(x, radix) → varchar

x의 밑이 radix인 표현을 반환합니다.

통계 함수 (Statistical functions)

t_pdf(x, df) → double

주어진 x와 자유도(df)에 대한 스튜던트 t-분포의 확률 밀도 함수를 계산합니다. x는 실수 값이어야 하고 자유도는 양의 정수여야 합니다.

wilson_interval_lower(successes, trials, z) → double

z-점수 z가 지정한 신뢰 수준에서 베르누이 시행 과정의 윌슨 점수 구간 하한을 반환합니다.

wilson_interval_upper(successes, trials, z) → double

z-점수 z가 지정한 신뢰 수준에서 베르누이 시행 과정의 윌슨 점수 구간 상한을 반환합니다.

누적 분포 함수 (Cumulative distribution functions)

  • beta_cdf(a, b, v) → double: 주어진 a, b 파라미터로 베타 cdf를 계산합니다: P(N < v).
  • inverse_beta_cdf(a, b, p) → double: 누적 확률(p)에 대해 주어진 a, b 파라미터로 베타 cdf의 역을 계산합니다: P(N < v).
  • inverse_normal_cdf(mean, sd, p) → double: 누적 확률(p)에 대해 주어진 평균과 표준편차(sd)로 정규 cdf의 역을 계산합니다: P(N < v).
  • normal_cdf(mean, sd, v) → double: 주어진 평균과 표준편차(sd)로 정규 cdf를 계산합니다: P(N < v).
  • t_cdf(x, df) → double: 주어진 x와 자유도(df)로 스튜던트 t-분포의 누적 밀도 함수를 계산합니다. x는 실수 값이어야 하고 자유도는 양의 정수여야 합니다.

더 알아보기 (Learn more)

수학 함수와 함께 쓰이는 문자열 변환, 진법 변환 등 다양한 주제도 살펴보세요. 특히 format_number() 같은 변환 함수가 수치 결과를 다루는 데 유용할 수 있어요.