# 숫자 다루는 SQL 함수

숫자 자료에 쓰는 함수들도 있습니다.

### **GREATEST / LEAST**

```sql
SELECT GREATEST(5, 3, 2, 1, 4) FROM DUAL;
SELECT LEAST(5, 3, 2, 1, 4) FROM DUAL;
```

여러 숫자들을 입력하면 최댓값, 최솟값 하나만 뽑아줍니다.

전에 했던 MAX(), MIN() 는 하나의 컬럼 안에서 최대, 최소를 1개 뽑아주는데

GREATEST(), LEAST() 는 하나의 행이나 숫자배열 안에서 최대, 최소를 뽑아줍니다.&#x20;

위 코드는 뭐가 나오나 한줄 씩 실행해봅시다.

🎈DUAL TABLE이란?

&#x20; 1\. 오라클 자체에서 제공되는 테이블

&#x20; 2\. 간단하게 함수를 이용해서 계산 결과값을 확인 할 때 사용하는 테이블

&#x20; 3\. SYS사용자가 소유하는 오라클의 표준 테이블&#x20;

&#x20; 4\. SYS사용자가 소유하지만 어느 사용자에서 접근 가능함

5. 오직 한행, 한컬럼을 담고 있는 dummy 테이블

```sql

-- DUAL TABLE 조회 쿼리 
SELECT *
  FROM ALL_ALL_TABLES
 WHERE TABLE_NAME = 'DUAL';
 
 -- 사용예시
 SELECT SYSDATE FROM DUAL;
```

### **FLOOR/CEIL**

```sql
SELECT FLOOR(10.1)FROM DUAL;
SELECT FLOOR(10.9)FROM DUAL;
                 
SELECT CEIL(10.1)FROM DUAL;
SELECT CEIL(10.9)FROM DUAL;

```

소수점 들어있는 숫자들을 정수로 변환할 때 씁니다.

FLOOR는 소수부분을 내림해서 정수로 바꿔주고

CEIL은 소수부분을 올림해서 정수로 바꿔줍니다.&#x20;

위 코드는 차례로 10, 10, 11, 11이 출력됩니다.&#x20;

소수점이 들어간 자료들을 깔끔하게 만들 때 쓰면 되겠군요.&#x20;

### **ROUND/TRUNC**

```sql
SELECT ROUND(10.777, 2) FROM DUAL;
SELECT TRUNC(10.777, 2) FROM DUAL; 
```

소수점 부분을 반올림/내림할 때 씁니다.

소괄호에 (숫자, 자릿수)를 입력할 수 있는데&#x20;

ROUND는 입력한 자릿수까지 반올림해줍니다.

TRUNC는 입력한 자릿수까지 내림해줍니다.

위 코드는 차례로 10.78, 10.77 이 출력됩니다.&#x20;

### **POWER**

```sql
SELECT POWER(4, 2) FROM DUAL;
```

숫자를 거듭제곱하고 싶을 때 씁니다.&#x20;

위의 예제는 4의 2승을 출력해줍니다.&#x20;

### **ABS**

```sql
SELECT ABS(-100) FROM DUAL;
```

숫자의 절댓값을 출력해줍니다.&#x20;

역시 숫자함수들도 필요할 때 찾아쓰면 되는 정도라

이런게 있다고 알아두기만 해도 됩니다.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://leeans-dev-book.gitbook.io/docs/lecture/database/sql-1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
