sample데이터가 없어서 쿼리문 작성만...
1. SELECT
> EMPLOYEES 테이블에서 first_name, last_name, hire_date 컬럼을 조회하기.
SELECT first_name, last_name, hire_date
FORM employees;
2. 조건절(WHERE)
> 급여가 5000 이상인 직원 조회
> employees 테이블에서 salary가 5000 이상인 직원들의 first_name, last_name, salary 조회하기.
SELECT first_name, last_name, salary
FROM employees
WHERE salary >= 5000;
2-1. 특정 날짜 이후 입사한 직원 조회
> employees 테이블에서 hire_date가 2015.01.01 이후인 직원들의 employee_id, first_name, hire_date 조회하기
SELECT employee_id, first_name, hire_date
FROM employees
WHERE hire_data > '2015-01-01';
3. 집계 함수(GROUP BY)
> 부서별 직원 수 조회
> employees 테이블에서 각 부서별 직원 수를 구하기. 컬럼: employee_id, department_id
SELECT employee_id, COUNT(department_id) AS employee_count
FROM employees
GROUP BY department_id;
3-1. 부서별 급여 합계 조회
employees 테이블에서 각 부서별 급여 합계 구하기
SELECT department_id, SUM(salary) AS total_salary
FROM employees
GROUP BY department_id;
4. ORDER BY
> 급여가 높은 순으로 직원 조회하기
> employees 테이블에서 salary가 높은 순서대로 first_name, last_name, salary 조회.
SELECT first_name, last_name, salary
FROM employees
ORDER BY salary DESC;
> 입사일 순으로 직원 조회하기
> employees 테이블에서 hird_date를 기준으로 가장 오래된 입사일을 가진 직원부터 조회.
SELECT first_name, last_name, hire_date
FROM employees
ORDER BY hire_date ASC;
5. JOIN
> 두 테이블 조인(INNER JOIN)
> employees 테이블과 departments 테이블을 조인해 직원 이름과 부서 이름을 조회.
>> employees = employee_id, first_name, last_name, department_id
>> departments = department_id, department_name
SELECT e.first_name, e.last_name, d.department_name
FROM employee e
INNER JOIN departments d ON e.department_id = d.department_id;
> LEFT JOIN 사용
> employees 테이블과 departments 테이블을 LEFT JOIN해 모든 직원과 해당 부서 이름 조회.
> 부서가 없는 직원도 포함되야 함.
SELECT e.first_name, e.last_name, d.department_name
FROM employees e
LEFT JOIN departments d ON e.department_id = d.department_id;
6. 서브 쿼리
> 급여가 최고인 직원 조회
> employees 테이블에서 가장 높은 급여를 받는 직원들의 first_name, last_name, salary 조회.
SELECT first_name, last_name, salary
FROM employees
WHERE salary = (SELECT MAX(salary)
FROM employees);
> 특정 부서에서 급여가 3000 이상인 직원 조회.
> employees 테이블에서 급여가 3000 이상인 직원들 중 department_id가 5인 직원들의 first_name, last_name, salary 조회.
SELECT first_name, last_name, salary
FROM employees
WHERE salary >= 3000
AND department_id = 5;
7. LIMIT , OFFSET
> 상위 5명의 직원 조회
> salary가 높은 상위 5명의 직원들의 first_name, last_name, salary 조회
SELECT first_name, last_name, salary
FROM employees
ODER BY salary DESC
LIMIT 5;
'코딩 테스트' 카테고리의 다른 글
SQL 테스트 (2) (0) | 2024.12.30 |
---|---|
배열 및 문자열 (0) | 2024.12.30 |
기본 알고리즘 (0) | 2024.12.30 |