숫자 함수

숫자 함수 (Numeric Functions)

DuckDB의 숫자 타입을 위한 수학 연산자와 함수를 정리한 참조 문서예요. 연산자부터 삼각함수, 반올림, 로그까지 폭넓게 다루니 참고하기 좋답니다. 함께 살펴볼까요?

출처: 문서

본문

숫자 연산자 (Numeric Operators)

아래 표는 [숫자 타입]({% link docs/current/sql/data_types/numeric.md %})을 위한 사용 가능한 수학 연산자를 보여줘요.

연산자 (Operator) 설명 (Description) 예시 (Example) 결과 (Result)
+ 덧셈 (Addition) 2 + 3 5
- 뺄셈 (Subtraction) 2 - 3 -1
* 곱셈 (Multiplication) 2 * 3 6
/ 부동소수점 나눗셈 (Float division) 5 / 2 2.5
// 정수 나눗셈 (Division) 5 // 2 2
% 나머지 (Modulo, remainder) 5 % 4 1
** 거듭제곱 (Exponent) 3 ** 4 81
^ 거듭제곱 (**의 별칭) 3 ^ 4 81
& 비트 AND (Bitwise AND) 91 & 15 11
` ` 비트 OR (Bitwise OR) `32
<< 비트 왼쪽 시프트 (Bitwise shift left) 1 << 4 16
>> 비트 오른쪽 시프트 (Bitwise shift right) 8 >> 2 2
~ 비트 부정 (Bitwise negation) ~15 -16
! x의 팩토리얼 (Factorial of x) 4! 24

나눗셈과 나머지 연산자 (Division and Modulo Operators)

두 개의 나눗셈 연산자가 있어요: ///. 피연산자 중 적어도 하나가 FLOATDOUBLE이면 둘은 동등해요. 두 피연산자 모두 정수일 때 /는 부동소수점 나눗셈(5 / 2 = 2.5)을, //는 정수 나눗셈(5 // 2 = 2)을 수행해요.

지원 타입 (Supported Types)

나머지(modulo), 비트, 부정, 팩토리얼 연산자는 정수 데이터 타입에서만 동작하고, 나머지는 모든 숫자 데이터 타입에서 사용할 수 있어요.

숫자 함수 (Numeric Functions)

아래 표는 사용 가능한 수학 함수를 보여줘요.

이름 (Name) 설명 (Description)
@(x) 절댓값. x가 컬럼 이름이면 괄호는 선택 사항이에요.
abs(x) 절댓값.
acos(x) x의 역코사인을 계산해요.
acosh(x) x의 역쌍곡코사인을 계산해요.
add(x, y) x + y의 별칭.
asin(x) x의 역사인을 계산해요.
asinh(x) x의 역쌍곡사인을 계산해요.
atan(x) x의 역탄젠트를 계산해요.
atanh(x) x의 역쌍곡탄젠트를 계산해요.
atan2(y, x) (y, x)의 역탄젠트를 계산해요.
bit_count(x) 설정된 비트의 수를 반환해요.
cbrt(x) 숫자의 세제곱근을 반환해요.
ceil(x) 숫자를 올림해요.
ceiling(x) 숫자를 올림해요. ceil의 별칭.
cos(x) x의 코사인을 계산해요.
cot(x) x의 코탄젠트를 계산해요.
degrees(x) 라디안을 도(degree)로 변환해요.
divide(x, y) x // y의 별칭.
even(x) 0에서 멀어지는 방향으로 반올림해 다음 짝수로 반올림해요.
exp(x) e ** x를 계산해요.
factorial(x) ! 연산자 참고. 현재 정수와 그 아래 모든 정수의 곱을 계산해요.
fdiv(x, y) 플로어(floor) 정의를 사용해 정수 나눗셈(x // y)을 수행하고 DOUBLE 값을 반환해요.
floor(x) 숫자를 내림해요.
fmod(x, y) 플로어 정의를 사용해 나머지 값을 계산해요. 항상 DOUBLE 값을 반환해요.
gamma(x) x - 1의 팩토리얼을 보간해요. 분수 입력이 허용돼요.
gcd(x, y) xy의 최대공약수를 계산해요.
greatest_common_divisor(x, y) xy의 최대공약수를 계산해요.
greatest(x1, x2, ...) 가장 큰 값을 선택해요.
isfinite(x) 부동소수점 값이 유한하면 true, 그렇지 않으면 false를 반환해요.
isinf(x) 부동소수점 값이 무한대면 true, 그렇지 않으면 false를 반환해요.
isnan(x) 부동소수점 값이 숫자가 아니면 true, 그렇지 않으면 false를 반환해요.
lcm(x, y) xy의 최소공배수를 계산해요.
least_common_multiple(x, y) xy의 최소공배수를 계산해요.
least(x1, x2, ...) 가장 작은 값을 선택해요.
lgamma(x) gamma 함수의 로그를 계산해요.
ln(x) x의 자연로그를 계산해요.
log(x) x의 밑이 10인 로그를 계산해요.
log10(x) log의 별칭. x의 밑이 10인 로그를 계산해요.
log2(x) x의 밑이 2인 로그를 계산해요.
multiply(x, y) x * y의 별칭.
nextafter(x, y) y 방향으로 x 다음의 부동소수점 값을 반환해요.
pi() 파이(pi) 값을 반환해요.
pow(x, y) xy승을 계산해요.
power(x, y) pow의 별칭. xy승을 계산해요.
radians(x) 도를 라디안으로 변환해요.
random() 0.0 <= x < 1.0 범위의 난수 x를 반환해요.
round_even(v NUMERIC, s INTEGER) roundbankers(v, s)의 별칭. 반올림 절반을 짝수로 규칙을 사용해 s 소수 자릿수로 반올림해요. s < 0 값은 허용돼요.
roundbankers(v NUMERIC, s INTEGER) round_even(v, s)의 별칭. 반올림 절반을 짝수로 규칙을 사용해 s 소수 자릿수로 반올림해요. s < 0 값은 허용돼요.
round(v NUMERIC, s INTEGER) s 소수 자릿수로 반올림해요. s < 0 값은 허용돼요.
setseed(x) random 함수에 사용할 시드(seed)를 설정해요.
sign(x) x의 부호를 -1, 0 또는 1로 반환해요.
signbit(x) signbit가 설정되어 있는지 여부를 반환해요.
sin(x) x의 사인(sin)을 계산해요.
sqrt(x) 숫자의 제곱근을 반환해요.
subtract(x, y) x - y의 별칭.
tan(x) x의 탄젠트를 계산해요.
trunc(x) 숫자를 절사해요.
xor(x, y) 비트 XOR.

@(x)

| 설명 (Description) | 절댓값. x가 컬럼 이름이면 괄호는 선택 사항이에요. | | 예시 (Example) | @(-17.4) | | 결과 (Result) | 17.4 | | 별칭 (Alias) | abs |

abs(x)

| 설명 (Description) | 절댓값. | | 예시 (Example) | abs(-17.4) | | 결과 (Result) | 17.4 | | 별칭 (Alias) | @ |

acos(x)

| 설명 (Description) | x의 역코사인을 계산해요. | | 예시 (Example) | acos(0.5) | | 결과 (Result) | 1.0471975511965976 |

acosh(x)

| 설명 (Description) | x의 역쌍곡코사인을 계산해요. | | 예시 (Example) | acosh(1.5) | | 결과 (Result) | 0.9624236501192069 |

add(x, y)

| 설명 (Description) | x + y의 별칭. | | 예시 (Example) | add(2, 3) | | 결과 (Result) | 5 |

asin(x)

| 설명 (Description) | x의 역사인을 계산해요. | | 예시 (Example) | asin(0.5) | | 결과 (Result) | 0.5235987755982989 |

asinh(x)

| 설명 (Description) | x의 역쌍곡사인을 계산해요. | | 예시 (Example) | asinh(0.5) | | 결과 (Result) | 0.48121182505960347 |

atan(x)

| 설명 (Description) | x의 역탄젠트를 계산해요. | | 예시 (Example) | atan(0.5) | | 결과 (Result) | 0.4636476090008061 |

atanh(x)

| 설명 (Description) | x의 역쌍곡탄젠트를 계산해요. | | 예시 (Example) | atanh(0.5) | | 결과 (Result) | 0.5493061443340549 |

atan2(y, x)

| 설명 (Description) | (y, x)의 역탄젠트를 계산해요. | | 예시 (Example) | atan2(0.5, 0.5) | | 결과 (Result) | 0.7853981633974483 |

bit_count(x)

| 설명 (Description) | 설정된 비트의 수를 반환해요. | | 예시 (Example) | bit_count(31) | | 결과 (Result) | 5 |

cbrt(x)

| 설명 (Description) | 숫자의 세제곱근을 반환해요. | | 예시 (Example) | cbrt(8) | | 결과 (Result) | 2 |

ceil(x)

| 설명 (Description) | 숫자를 올림해요. | | 예시 (Example) | ceil(17.4) | | 결과 (Result) | 18 |

ceiling(x)

| 설명 (Description) | 숫자를 올림해요. ceil의 별칭. | | 예시 (Example) | ceiling(17.4) | | 결과 (Result) | 18 |

cos(x)

| 설명 (Description) | x의 코사인을 계산해요. | | 예시 (Example) | cos(pi() / 3) | | 결과 (Result) | 0.5000000000000001 |

cot(x)

| 설명 (Description) | x의 코탄젠트를 계산해요. | | 예시 (Example) | cot(0.5) | | 결과 (Result) | 1.830487721712452 |

degrees(x)

| 설명 (Description) | 라디안을 도(degree)로 변환해요. | | 예시 (Example) | degrees(pi()) | | 결과 (Result) | 180 |

divide(x, y)

| 설명 (Description) | x // y의 별칭. | | 예시 (Example) | divide(5, 2) | | 결과 (Result) | 2 |

even(x)

| 설명 (Description) | 0에서 멀어지는 방향으로 반올림해 다음 짝수로 반올림해요. | | 예시 (Example) | even(2.9) | | 결과 (Result) | 4 |

exp(x)

| 설명 (Description) | e ** x를 계산해요. | | 예시 (Example) | exp(0.693) | | 결과 (Result) | 2 |

factorial(x)

| 설명 (Description) | ! 연산자 참고. 현재 정수와 그 아래 모든 정수의 곱을 계산해요. | | 예시 (Example) | factorial(4) | | 결과 (Result) | 24 |

fdiv(x, y)

| 설명 (Description) | 플로어 정의를 사용해 정수 나눗셈(x // y)을 수행하고 DOUBLE 값을 반환해요. | | 예시 (Example) | fdiv(5, 2) | | 결과 (Result) | 2.0 |

floor(x)

| 설명 (Description) | 숫자를 내림해요. | | 예시 (Example) | floor(17.4) | | 결과 (Result) | 17 |

fmod(x, y)

| 설명 (Description) | 플로어 정의를 사용해 나머지 값을 계산해요. 항상 DOUBLE 값을 반환해요. | | 예시 (Example) | fmod(5, 2) | | 결과 (Result) | 1.0 |

gamma(x)

| 설명 (Description) | x - 1의 팩토리얼을 보간해요. 분수 입력이 허용돼요. | | 예시 (Example) | gamma(5.5) | | 결과 (Result) | 52.34277778455352 |

gcd(x, y)

| 설명 (Description) | xy의 최대공약수를 계산해요. | | 예시 (Example) | gcd(42, 57) | | 결과 (Result) | 3 |

greatest_common_divisor(x, y)

| 설명 (Description) | xy의 최대공약수를 계산해요. | | 예시 (Example) | greatest_common_divisor(42, 57) | | 결과 (Result) | 3 |

greatest(x1, x2, ...)

| 설명 (Description) | 가장 큰 값을 선택해요. | | 예시 (Example) | greatest(3, 2, 4, 4) | | 결과 (Result) | 4 |

isfinite(x)

| 설명 (Description) | 부동소수점 값이 유한하면 true, 그렇지 않으면 false를 반환해요. | | 예시 (Example) | isfinite(5.5) | | 결과 (Result) | true |

isinf(x)

| 설명 (Description) | 부동소수점 값이 무한대면 true, 그렇지 않으면 false를 반환해요. | | 예시 (Example) | isinf('Infinity'::float) | | 결과 (Result) | true |

isnan(x)

| 설명 (Description) | 부동소수점 값이 숫자가 아니면 true, 그렇지 않으면 false를 반환해요. | | 예시 (Example) | isnan('NaN'::float) | | 결과 (Result) | true |

lcm(x, y)

| 설명 (Description) | xy의 최소공배수를 계산해요. | | 예시 (Example) | lcm(42, 57) | | 결과 (Result) | 798 |

least_common_multiple(x, y)

| 설명 (Description) | xy의 최소공배수를 계산해요. | | 예시 (Example) | least_common_multiple(42, 57) | | 결과 (Result) | 798 |

least(x1, x2, ...)

| 설명 (Description) | 가장 작은 값을 선택해요. | | 예시 (Example) | least(3, 2, 4, 4) | | 결과 (Result) | 2 |

lgamma(x)

| 설명 (Description) | gamma 함수의 로그를 계산해요. | | 예시 (Example) | lgamma(2) | | 결과 (Result) | 0 |

ln(x)

| 설명 (Description) | x의 자연로그를 계산해요. | | 예시 (Example) | ln(2) | | 결과 (Result) | 0.693 |

log(x)

| 설명 (Description) | x의 밑이 10인 로그를 계산해요. | | 예시 (Example) | log(100) | | 결과 (Result) | 2 |

log10(x)

| 설명 (Description) | log의 별칭. x의 밑이 10인 로그를 계산해요. | | 예시 (Example) | log10(1000) | | 결과 (Result) | 3 |

log2(x)

| 설명 (Description) | x의 밑이 2인 로그를 계산해요. | | 예시 (Example) | log2(8) | | 결과 (Result) | 3 |

multiply(x, y)

| 설명 (Description) | x * y의 별칭. | | 예시 (Example) | multiply(2, 3) | | 결과 (Result) | 6 |

nextafter(x, y)

| 설명 (Description) | y 방향으로 x 다음의 부동소수점 값을 반환해요. | | 예시 (Example) | nextafter(1::float, 2::float) | | 결과 (Result) | 1.0000001 |

pi()

| 설명 (Description) | 파이(pi) 값을 반환해요. | | 예시 (Example) | pi() | | 결과 (Result) | 3.141592653589793 |

pow(x, y)

| 설명 (Description) | xy승을 계산해요. | | 예시 (Example) | pow(2, 3) | | 결과 (Result) | 8 |

power(x, y)

| 설명 (Description) | pow의 별칭. xy승을 계산해요. | | 예시 (Example) | power(2, 3) | | 결과 (Result) | 8 |

radians(x)

| 설명 (Description) | 도를 라디안으로 변환해요. | | 예시 (Example) | radians(90) | | 결과 (Result) | 1.5707963267948966 |

random()

| 설명 (Description) | 0.0 <= x < 1.0 범위의 난수 x를 반환해요. | | 예시 (Example) | random() | | 결과 (Result) | 다양한 값 |

round_even(v NUMERIC, s INTEGER)

| 설명 (Description) | roundbankers(v, s)의 별칭. 반올림 절반을 짝수로 규칙을 사용해 s 소수 자릿수로 반올림해요. s < 0 값은 허용돼요. | | 예시 (Example) | round_even(24.5, 0) | | 결과 (Result) | 24.0 |

roundbankers(v NUMERIC, s INTEGER)

| 설명 (Description) | round_even(v, s)의 별칭. 반올림 절반을 짝수로 규칙을 사용해 s 소수 자릿수로 반올림해요. s < 0 값은 허용돼요. | | 예시 (Example) | roundbankers(24.5, 0) | | 결과 (Result) | 24.0 |

round(v NUMERIC, s INTEGER)

| 설명 (Description) | s 소수 자릿수로 반올림해요. s < 0 값은 허용돼요. | | 예시 (Example) | round(42.4332, 2) | | 결과 (Result) | 42.43 |

setseed(x)

| 설명 (Description) | random 함수에 사용할 시드(seed)를 설정해요. | | 예시 (Example) | setseed(0.42) |

sign(x)

| 설명 (Description) | x의 부호를 -1, 0 또는 1로 반환해요. | | 예시 (Example) | sign(-349) | | 결과 (Result) | -1 |

signbit(x)

| 설명 (Description) | signbit가 설정되어 있는지 여부를 반환해요. | | 예시 (Example) | signbit(-1.0) | | 결과 (Result) | true |

sin(x)

| 설명 (Description) | x의 사인(sin)을 계산해요. | | 예시 (Example) | sin(pi() / 6) | | 결과 (Result) | 0.49999999999999994 |

sqrt(x)

| 설명 (Description) | 숫자의 제곱근을 반환해요. | | 예시 (Example) | sqrt(9) | | 결과 (Result) | 3 |

subtract(x, y)

| 설명 (Description) | x - y의 별칭. | | 예시 (Example) | subtract(2, 3) | | 결과 (Result) | -1 |

tan(x)

| 설명 (Description) | x의 탄젠트를 계산해요. | | 예시 (Example) | tan(pi() / 4) | | 결과 (Result) | 0.9999999999999999 |

trunc(x)

| 설명 (Description) | 숫자를 절사해요. | | 예시 (Example) | trunc(17.4) | | 결과 (Result) | 17 |

xor(x, y)

| 설명 (Description) | 비트 XOR. | | 예시 (Example) | xor(17, 5) | | 결과 (Result) | 20 |

더 알아보기 (Learn more)