SQL에서 숫자를 다룰 때 나머지를 구하는 연산이 필요한 경우가 많습니다.
이때 사용하는 함수가 바로 MOD 함수입니다.
✅ 1. MOD 함수란?
MOD(숫자1, 숫자2) 함수는 숫자1을 숫자2로 나눈 후, 나머지 값을 반환합니다.
- 숫자1: 나눠지는 수 (피제수, Dividend)
- 숫자2: 나누는 수 (제수, Divisor)
- 결과값: 숫자1 ÷ 숫자2 후 나머지 값을 반환
✅ 2. MOD 함수 기본 사용법
📌 나머지 값 구하기
SELECT MOD(10, 3) AS result FROM dual;
📌 실행 결과
설명: 10 ÷ 3 = 3이고, 나머지가 1이므로 MOD(10, 3) = 1이 됩니다.
📌 숫자가 나누어떨어지는 경우 (나머지 0)
SELECT MOD(12, 4) AS result FROM dual;
📌 실행 결과
설명: 12 ÷ 4 = 3이고 나머지가 없으므로 MOD(12, 4) = 0이 됩니다.
→ 이를 활용하면 **"특정 숫자로 나누어떨어지는 경우"**를 쉽게 찾을 수 있습니다.
✅ 3. MOD 함수 활용 사례 3가지
(1) 짝수와 홀수 구별하기
MOD(숫자, 2)를 사용하면 짝수인지 홀수인지 쉽게 판별할 수 있습니다.
SELECT employee_id, salary,
CASE
WHEN MOD(salary, 2) = 0 THEN '짝수 연봉'
ELSE '홀수 연봉'
END AS salary_type
FROM employees;
📌 실행 결과
설명: 급여를 2로 나누었을 때 나머지가 0이면 짝수, 1이면 홀수로 분류할 수 있습니다.
(2) 매월 일정한 주기로 데이터 그룹 나누기
예를 들어, 직원 ID를 3개의 그룹(1조, 2조, 3조) 으로 나누고 싶을 때 MOD(직원번호, 3)을 사용하면 편리합니다.
SELECT employee_id, name,
CASE
WHEN MOD(employee_id, 3) = 0 THEN '1조'
WHEN MOD(employee_id, 3) = 1 THEN '2조'
ELSE '3조'
END AS team
FROM employees;
📌 실행 결과
설명: MOD(직원번호, 3)을 이용해 1조, 2조, 3조를 순환 배정했습니다.
→ 이를 활용하면 회전 근무, 조 편성, 순번 정하기 등의 작업이 가능해집니다.
(3) 특정 주기로 데이터 필터링하기 (ex. 홀수 번째 행만 출력)
예를 들어, 홀수 번째 주문만 조회하고 싶다면 MOD(주문번호, 2) = 1 조건을 사용하면 됩니다.
SELECT order_id, customer_name, total_price
FROM orders
WHERE MOD(order_id, 2) = 1;
📌 실행 결과
설명: MOD(order_id, 2) = 1 조건을 사용하면 홀수 번째 주문만 필터링할 수 있습니다.
→ 이를 활용하면 특정 간격으로 데이터를 선택할 수 있습니다.
✅ 4. 정리
✅ MOD(숫자1, 숫자2) → 숫자1을 숫자2로 나눈 후 나머지를 반환
✅ 짝수/홀수 판별 가능 → MOD(숫자, 2) = 0이면 짝수, 1이면 홀수
✅ 데이터 그룹 나누기 → MOD(숫자, n)을 사용해 n개의 그룹으로 배정 가능
✅ 특정 패턴의 데이터 필터링 → MOD(숫자, n) = x 조건으로 원하는 데이터만 추출 가능
'기획자가 알아야 할 IT지식 > 기획자가 알아야 할 SQL' 카테고리의 다른 글
18강. 날짜 및 숫자 데이터 변환하기 (TO_CHAR, TO_DATE) (0) | 2025.03.22 |
---|---|
17강. 날짜 차이 및 월 단위 계산하기 (MONTHS_BETWEEN, ADD_MONTHS) (0) | 2025.03.22 |
15강. 숫자 반올림하기 (ROUND) & 특정 자리에서 절삭하기 (TRUNC) (0) | 2025.03.22 |
14강. 문자에서 특정 철자의 위치 찾기 (INSTR) & 특정 철자를 다른 철자로 변경하기 (REPLACE) (0) | 2025.03.22 |
12강. 대소문자 변환 함수 (UPPER, LOWER, INITCAP) (0) | 2025.03.22 |