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 | 오버플로우 버킷 |
반응형