표준 SQL의 수학 함수

모든 수학 함수는 다음과 같이 동작합니다.

  • 입력 매개변수 중 하나가 NULL이면 NULL을 반환합니다.
  • 인수 중 하나가 NaN이면 NaN을 반환합니다.

ABS

ABS(X)

설명

절대값을 계산합니다. 인수가 정수이고 출력값을 동일한 유형으로 나타낼 수 없는 경우 오류를 반환합니다. 양의 표현이 없는 최대 음의 입력값의 경우에만 이 오류가 발생합니다. +/-inf 인수의 경우 +inf를 반환합니다.

SIGN

SIGN(X)

설명

음의 인수, 0, 양의 인수에 각각 -1, 0, +1을 반환합니다. 이 함수는 부동 소수점 인수에 대해 양수와 음수의 0을 구별하지 않습니다. NaN 인수에는 NaN을 반환합니다.

IS_INF

IS_INF(X)

설명

값이 양의 무한대이거나 음의 무한대이면 TRUE를 반환합니다. NULL 입력에는 NULL을 반환합니다.

IS_NAN

IS_NAN(X)

설명

값이 NaN 값이면 TRUE를 반환합니다. NULL 입력에는 NULL을 반환합니다.

IEEE_DIVIDE

IEEE_DIVIDE(X, Y)

설명

X를 Y로 나눕니다. 이 함수는 절대 실패하지 않습니다. FLOAT64를 반환합니다. 나누기 연산자(/)와 달리, 이 함수는 0으로 나누기나 오버플로에 오류를 생성하지 않습니다.

특수한 경우:

  • 결과가 오버플로인 경우 +/-inf를 반환합니다.
  • Y=0이고 X=0이면, NaN을 반환합니다.
  • Y=0이고 X!=0이면, +/-inf를 반환합니다.
  • X = +/-inf이고 Y = +/-inf이면, NaN을 반환합니다.

IEEE_DIVIDE의 동작이 아래의 표에 자세히 설명되어 있습니다.

IEEE_DIVIDE의 특수한 경우

아래의 표는 IEEE_DIVIDE의 특수한 경우를 나열한 것입니다.

분자 데이터 유형(X) 분모 데이터 유형(Y) 결과 값
0을 제외한 모든 유형 0 +/-inf
0 0 NaN
0 NaN NaN
NaN 0 NaN
+/-inf +/-inf NaN

RAND

RAND()

설명

[0, 1) 범위(0은 포함, 1은 제외)에 있는 FLOAT64 유형의 의사 난수 값을 생성합니다.

SQRT

SQRT(X)

설명

X의 제곱근을 계산합니다. X가 0보다 작은 경우 오류를 생성합니다. X가 +inf인 경우 +inf를 반환합니다.

POW

POW(X, Y)

설명

X의 Y승 값을 반환합니다. 결과가 언더플로이고 나타낼 수 없는 경우, 이 함수는 0 값을 반환합니다. 다음 중 하나가 참이면 오류를 반환합니다.

  • X는 0보다 작은 유한한 값이고 Y는 정수가 아닙니다.
  • X는 0이고 Y는 0보다 작은 유한한 값입니다.

POW()의 동작이 아래의 표에 자세히 설명되어 있습니다.

POWER

POWER(X, Y)

설명

POW()의 동의어입니다.

POW(X, Y)POWER(X, Y)의 특수한 경우

다음은 POW(X, Y)POWER(X, Y)의 특수한 경우입니다.

X Y POW(X, Y) 또는 POWER(X, Y)
1.0 NaN을 포함한 모든 값 1.0
NaN을 포함한 모든 값 0 1.0
-1.0 +/-inf 1.0
ABS(X) < 1 -inf +inf
ABS(X) > 1 -inf 0
ABS(X) < 1 +inf 0
ABS(X) > 1 +inf +inf
-inf Y < 0 0
-inf Y > 0 Y가 홀수이면 -inf, 그렇지 않으면 +inf
+inf Y < 0 0
+inf Y > 0 +inf

EXP

EXP(X)

설명

X승까지 e를 계산합니다. 자연 지수 함수라고도 합니다. 결과가 언더플로인 경우 이 함수는 0을 반환합니다. 결과가 오버플로인 경우 오류를 생성합니다. X가 +/-inf이면 이 함수는 +inf 또는 0을 반환합니다.

LN

LN(X)

설명

X의 자연로그를 계산합니다. X가 0 이하이면 오류를 생성합니다. X가 +inf이면 이 함수는 +inf를 반환합니다.

LOG

LOG(X [, Y])

설명

X가 존재하는 경우에 한하여, LOGLN의 동의어입니다. Y도 존재한다면, LOG는 Y를 밑으로 하는 X의 로그를 계산합니다. 다음의 경우 오류를 생성합니다.

  • X가 0 이하인 경우
  • Y가 1.0인 경우
  • Y가 0 이하인 경우

LOG(X, Y)의 동작이 아래의 표에 자세히 설명되어 있습니다.

LOG(X, Y)의 특수한 경우

X Y LOG(X, Y)
-inf 모든 값 NaN
모든 값 +inf NaN
+inf 0.0 Y < 1.0 -inf
+inf Y > 1.0 +inf

LOG10

LOG10(X)

설명

LOG와 유사하되, 10을 밑으로 한 로그를 계산합니다.

GREATEST

GREATEST(X1,...,XN)

설명

입력 중 하나가 NULL이면 NULL을 반환하고, 입력 중 하나가 NaN이면 NaN을 반환합니다. 그렇지 않을 경우 < 비교에 따라 X1,...,XN 중 가장 큰 값을 반환합니다.

LEAST

LEAST(X1,...,XN)

설명

입력 중 하나가 NULL이면 NULL을 반환하고, 입력 중 하나가 NaN이면 NaN을 반환합니다. 그렇지 않을 경우 > 비교에 따라 X1,...,XN 중 가장 작은 값을 반환합니다.

DIV

DIV(X, Y)

설명

X/Y의 정수 나누기 결과를 반환합니다. 0으로 나눌 경우 오류를 반환합니다. -1로 나누면 오버플로가 발생할 수 있습니다. 가능한 결과 유형은 아래 표를 참조하세요.

SAFE_DIVIDE

SAFE_DIVIDE(X, Y)

설명

나누기 연산자(/)와 동일하지만 0으로 나누기 오류 같은 오류가 발생하면 NULL을 반환합니다.

MOD

MOD(X, Y)

설명

모듈로 함수: X를 Y로 나눈 나머지를 반환합니다. 반환되는 값은 X와 동일한 기호를 갖습니다. Y가 0이면 오류가 생성됩니다. 결과 유형은 아래의 표를 참조하세요.

ROUND

ROUND(X [, N])

설명

X가 존재하는 경우에 한하여, ROUND는 X를 가장 가까운 정수로 반올림합니다. N이 존재하는 경우, ROUND는 X를 소수점 아래 N자리까지 반올림합니다. N이 음수인 경우, ROUND는 소수점 왼쪽 자릿수를 버립니다. 중간 값은 올림됩니다. 오버플로가 발생하는 경우 오류를 생성합니다.

TRUNC

TRUNC(X [, N])

설명

X가 존재하는 경우에 한하여 TRUNC는 X를 절대값이 X의 절대값보다 크지 않은 가장 가까운 정수로 반올림합니다. N도 존재하는 경우 TRUNCROUND(X, N)와 유사하게 동작하지만, 항상 내림하며 절대 오버플로가 발생하지 않습니다.

CEIL

CEIL(X)

설명

X보다 작지 않은 가장 작은 정수 값(FLOAT64 유형)을 반환합니다.

CEILING

CEILING(X)

설명

CEIL(X)의 동의어

FLOOR

FLOOR(X)

설명

X보다 크지 않은 가장 큰 정수 값(FLOAT64 유형)을 반환합니다.

반올림 함수의 동작 예

BigQuery 반올림 함수의 동작 예:

입력 'X' ROUND(X) TRUNC(X) CEIL(X) FLOOR(X)
2.0 2.0 2.0 2.0 2.0
2.3 2.0 2.0 3.0 2.0
2.8 3.0 2.0 3.0 2.0
2.5 3.0 2.0 3.0 2.0
-2.3 -2.0 -2.0 -2.0 -3.0
-2.8 -3.0 -2.0 -2.0 -3.0
-2.5 -3.0 -2.0 -2.0 -3.0
0 0 0 0 0
+/-inf +/-inf +/-inf +/-inf +/-inf
NaN NaN NaN NaN NaN

COS

COS(X)

설명

X의 코사인을 계산합니다. 절대 실패하지 않습니다.

COSH

COSH(X)

설명

X의 쌍곡코사인을 계산합니다. 오버플로가 발생할 경우 오류를 생성합니다.

ACOS

ACOS(X)

설명

X 역코사인의 주요값을 계산합니다. 반환 값은 [0,] 범위 이내입니다. X가 [-1, 1] 범위 밖의 유한한 값인 경우 오류를 생성합니다.

ACOSH

ACOSH(X)

설명

X의 역쌍곡코사인을 계산합니다. X가 1보다 작은 유한한 값인 경우 오류를 생성합니다.

SIN

SIN(X)

설명

X의 사인을 계산합니다. 절대 실패하지 않습니다.

SINH

SINH(X)

설명

X의 쌍곡사인을 계산합니다. 오버플로가 발생할 경우 오류를 생성합니다.

ASIN

ASIN(X)

설명

X 아크사인의 주요값을 계산합니다. 반환 값은 [-π/2,π/2] 범위 이내입니다. X가 [-1, 1] 범위 밖의 유한한 값인 경우 오류를 생성합니다.

ASINH

ASINH(X)

설명

X의 역쌍곡사인을 계산합니다. 실패하지 않습니다.

TAN

TAN(X)

설명

X의 탄젠트를 계산합니다. 오버플로가 발생할 경우 오류를 생성합니다.

TANH

TANH(X)

설명

X의 쌍곡탄젠트를 계산합니다. 실패하지 않습니다.

ATAN

ATAN(X)

설명

X 아크탄젠트의 주요값을 계산합니다. 반환 값은 [-π/2,π/2] 범위 이내입니다. 실패하지 않습니다.

ATANH

ATANH(X)

설명

X의 역쌍곡탄젠트를 계산합니다. X의 절대값이 1 이상이면 오류를 생성합니다.

ATAN2

ATAN2(Y, X)

설명

사분면을 결정하기 위해 2개 인수의 기호를 사용하여 Y/X 아크탄젠트의 주요값을 계산합니다. 반환 값은 [-π,π] 범위 이내입니다. 이 함수의 동작이 아래의 표에 자세히 설명되어 있습니다.

ATAN2()의 특수한 경우

Y X ATAN2(Y, X)
NaN 모든 값 NaN
모든 값 NaN NaN
0 0 X와 Y의 기호에 따라 0, π, 또는 -π
유한한 값 -inf Y의 기호에 따라 π 또는 -π
유한한 값 +inf 0
+/-inf 유한한 값 Y의 기호에 따라 π/2 또는 π/2
+/-inf -inf Y의 기호에 따라 ¾π 또는 -¾π
+/-inf +inf Y의 기호에 따라 π/4 또는 -π/4

삼각 반올림 함수와 쌍곡선 반올림 함수의 특수한 경우

X COS(X) COSH(X) ACOS(X) ACOSH(X) SIN(X) SINH(X) ASIN(X) ASINH(X) TAN(X) TANH(X) ATAN(X) ATANH(X)
+/-inf NaN =+inf NaN =+inf NaN =+inf NaN =+inf NaN =+1.0 π/2 NaN
-inf NaN =+inf NaN NaN NaN -inf NaN -inf NaN -1.0 -π/2 NaN
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.