코딩 스쿨 SQL

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

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와 결합하여 그룹별로 최소값과 최대값을 계산할 수 있습니다. 또한, 서브쿼리와 함께 사용하면 더 복잡한 조건을 처리할 수 있습니다. 이 함수들은 데이터 분석이나 보고서를 작성할 때 매우 유용하게 사용됩니다.

copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com