Darren's Devlog

[불친절한SQL] 기초쿼리, 숫자 함수 본문

SQL

[불친절한SQL] 기초쿼리, 숫자 함수

Darren Gwon 2022. 11. 29. 00:41
반응형

0○ 숫자 함수

숫자 값을 조작하는 함수이다.

 

ABS 함수

n의 절대값을 반환한다.

SELECT ABS(0) AS c1, ABS(10) AS c2, ABS(-10) AS c3 FROM DUAL;

 

SIGN 함수

n의 부호를 반환한다. n이 양수이면 1, 음수이면 -1, 0이면 0을 반환한다.

SELECT SIGN(0) AS c1, SIGN(10) AS c2, SIGN(-10) AS c3 FROM DUAL;

 

ROUND(number) 함수

n1을 n2자리로 반올림한다. n2가 양수면 소수부, 음수면 정수부를 반올림한다. n2의 기본값은 0이다.

ROUND(n1, [, n2])

 

SELECT ROUND(15.59) AS c1, ROUND(15.59, 1) AS c2, ROUND(15.59, -1) AS c3 FROM DUAL;

 

TRUNC(number) 함수

n1을 n2자리로 버린다. n2가 양수면 소수부, 음수면 정수부를 버린다. n2의 기본값은 0이다.

TRUNC(n1, [, n2])

 

SELECT TRUNC(15.59) AS c1, TRUNC(15.59, 1) AS c2, TRUNC(15.59, -1) AS c3 FROM DUAL;

 

POWER 함수

n1을 n2로 거듭제곱한 값을 반환한다.

POWER(n1, [, n2])

 

SELECT POWER(2, 10) AS c1, 107374182400 / POWER(1024, 3) AS c2 FROM DUAL;

 

WIDTH_BUCKET 함수

min_value ~ max_value의 범위에 대해 num_buckets개의 버킷을 생성한 후, expr이 속한 버킷을 반환한다.

풀어 설명하자면, 주어진 인자 값이 전체 데이터 범위를 num_buckets 값 만큼 나눈 후 

어느 범위에 해당하는지 반환해주는 함수이다.

WIDTH_BUCKET(expr, min_value, max_value, num_buckets)

 

WITH w1 AS (SELECT LEVEL AS c1 FROM DUAL CONNECT BY LEVEL <= 6)
SELECT c1, WIDTH_BUCKET (c1, 2, 6, 2) AS c2 FROM w1;

expr이 min_value 미만이면 0, max_value 이상이면 num_buckets+1 값을 반환한다.

c1 c2 버킷
1 0 언더플로우 버킷: 0
2 1 1번 버킷: (2~3)
3 1 1번 버킷
4 2 2번 버킷: (4~5)
5 2 2번 버킷
6 3 오버플로우 버킷

 

반응형
Comments