SQL Min and Max
SQL MIN() and MAX(): 최소값과 최대값 계산
- *SQL MIN()**와 MAX() 함수는 각각 열에서 가장 작은 값(최소값)과 가장 큰 값(최대값)을 반환하는 집계 함수입니다. 이 함수들은 주로 숫자, 날짜, 문자열 데이터에서 최소값과 최대값을 찾을 때 사용됩니다. **MIN()**과 **MAX()**는 테이블 전체 또는 특정 조건을 만족하는 값에서 사용할 수 있습니다.
1. 기본 문법
MIN() 문법
SELECT MIN(열이름)
FROM 테이블이름
WHERE 조건;
MAX() 문법
SELECT MAX(열이름)
FROM 테이블이름
WHERE 조건;
- 열이름: 최소값 또는 최대값을 찾을 열의 이름.
- WHERE 조건: 조건에 맞는 데이터를 선택(선택적).
2. SQL MIN() 예제
2.1 테이블에서 최소값 조회
다음은 employees
테이블에서 가장 낮은 급여를 조회하는 예제입니다.
SELECT MIN(salary)
FROM employees;
이 쿼리는 employees
테이블에서 급여의 최소값을 반환합니다.
결과 예시:
MIN(salary)
3000
2.2 조건에 맞는 최소값 조회
다음은 Sales
부서에서 가장 낮은 급여를 조회하는 예제입니다.
SELECT MIN(salary)
FROM employees
WHERE department = 'Sales';
이 쿼리는 Sales
부서에 속한 직원들의 급여 중 최소값을 반환합니다.
결과 예시:
MIN(salary)
4000
3. SQL MAX() 예제
3.1 테이블에서 최대값 조회
다음은 employees
테이블에서 가장 높은 급여를 조회하는 예제입니다.
SELECT MAX(salary)
FROM employees;
이 쿼리는 employees
테이블에서 급여의 최대값을 반환합니다.
결과 예시:
MAX(salary)
8000
3.2 조건에 맞는 최대값 조회
다음은 HR
부서에서 가장 높은 급여를 조회하는 예제입니다.
SELECT MAX(salary)
FROM employees
WHERE department = 'HR';
이 쿼리는 HR
부서에서 급여 중 최대값을 반환합니다.
결과 예시:
MAX(salary)
5500
4. MIN() 및 MAX()와 GROUP BY 사용
- *MIN()**와 **MAX()**는 GROUP BY 절과 함께 사용하여 특정 그룹별로 최소값과 최대값을 계산할 수 있습니다.
예제: 부서별 최소 및 최대 급여 조회
SELECT department, MIN(salary) AS min_salary, MAX(salary) AS max_salary
FROM employees
GROUP BY department;
이 쿼리는 각 부서별로 급여의 최소값과 최대값을 반환합니다.
결과 예시:
department | min_salary | max_salary |
---|---|---|
Sales | 4000 | 7000 |
HR | 5000 | 5500 |
Engineering | 6000 | 8000 |
5. MIN() 및 MAX()와 함께 날짜 데이터 사용
- *MIN()**와 **MAX()**는 날짜 데이터에서도 사용 가능합니다. 예를 들어, 직원들의 고용일 중 가장 빠른 날짜와 가장 늦은 날짜를 찾을 수 있습니다.
예제: 고용일의 최소 및 최대값 조회
SELECT MIN(hire_date) AS earliest_hire, MAX(hire_date) AS latest_hire
FROM employees;
이 쿼리는 employees
테이블에서 가장 빠른 고용일과 가장 최근의 고용일을 반환합니다.
결과 예시:
earliest_hire | latest_hire |
---|---|
2015-02-10 | 2023-06-15 |
6. MIN() 및 MAX()와 서브쿼리
- *MIN()**와 **MAX()**는 서브쿼리와 함께 사용하여 더 복잡한 조건을 설정할 수 있습니다.
예제: 가장 높은 급여를 받는 직원 조회
SELECT name, salary
FROM employees
WHERE salary = (SELECT MAX(salary) FROM employees);
이 쿼리는 employees
테이블에서 가장 높은 급여를 받는 직원을 조회합니다.
결과 예시:
name | salary |
---|---|
John Doe | 8000 |
7. 실전 예제
예제 1: 부서별로 가장 낮은 급여를 받는 직원 조회
SELECT department, MIN(salary) AS min_salary
FROM employees
GROUP BY department;
이 쿼리는 부서별로 가장 낮은 급여를 반환합니다.
예제 2: 직원들 중 가장 최근에 고용된 직원 조회
SELECT name, hire_date
FROM employees
WHERE hire_date = (SELECT MAX(hire_date) FROM employees);
이 쿼리는 가장 최근에 고용된 직원을 반환합니다.
예제 3: 특정 부서에서 가장 낮은 급여를 받는 직원 조회
SELECT name, salary
FROM employees
WHERE salary = (SELECT MIN(salary) FROM employees WHERE department = 'Engineering');
이 쿼리는 Engineering
부서에서 가장 낮은 급여를 받는 직원을 반환합니다.
8. 요약
- *SQL MIN()**와 MAX() 함수는 특정 열에서 최소값과 최대값을 구하는 데 사용되는 집계 함수입니다. 숫자, 문자열, 날짜 등 다양한 데이터 타입에서 사용할 수 있으며, GROUP BY와 결합하여 그룹별로 최소값과 최대값을 계산할 수 있습니다. 또한, 서브쿼리와 함께 사용하면 더 복잡한 조건을 처리할 수 있습니다. 이 함수들은 데이터 분석이나 보고서를 작성할 때 매우 유용하게 사용됩니다.