기본 SELECT SQL문 처리 순서

LeeYulhee·2023년 11월 2일
0

👉 기본 SELECT 예제


  SELECT   department_id
         , COUNT(employee_id) AS number_of_employees
         , AVG(salary) AS average_salary
    FROM   employees
   WHERE   hire_date > '2010-01-01'  /* 2010년 1월 1일 이후에 고용된 직원들만 포함 */
GROUP BY   department_id
  HAVING   AVG(salary) > 50000       /* 평균 급여가 50,000 이상인 부서만 포함      */
ORDER BY   department_id;
  • 📌 해당 쿼리의 역할
    • employees 테이블을 사용하며, 각 부서(department)별로 평균 급여를 계산하고, 평균 급여가 특정 값보다 높은 부서만을 선별하여, 이들의 부서별 직원 수와 평균 급여를 부서 번호로 정렬해서 보여줌
  • 📌 각 구문의 역할
    • SELECT : 조회할 컬럼이나 표현식을 지정
    • FROM : 데이터를 조회할 테이블을 지정
    • WHERE : 특정 조건에 부합하는 행(row)을 필터링
    • GROUP BY : 지정된 컬럼의 값이 같은 행들을 집계 단위로 묶음
    • HAVING : GROUP BY로 묶인 결과에 대해 특정 조건을 만족하는 그룹을 필터링
    • ORDER BY : 결과를 정렬 ⇒ 이 경우에는 department_id를 기준으로 정렬
  • 📌 집계 함수
    • COUNT(employee_id) : 지정된 부서의 직원 수를 셈
    • AVG(salary) : 지정된 부서의 직원들의 평균 급여를 계산



👉 쿼리의 처리 순서


  • FROMWHEREGROUP BYHAVINGSELECTORDER BY



👉 예시 쿼리 처리 순서


  • FROM : employees 테이블에서 조회
  • WHERE : 고용 일자가 2010-01-01보다 큰 데이터만 필터링
  • GROUP BY : 필터링이 완료된 데이터의 department_id가 같은 경우 그룹화
  • HAVING : 그룹화 이후에 평균 급여가 50,000 이상인 경우로 필터링
  • SELECT : 최종적으로 출력될 컬럼(deparment_id, AVG(salary), COUNT(employee_id)) 확인
  • ORDER BY : 정렬 기준에 맞춰 정렬 후 출력
profile
공부 중인 신입 백엔드 개발자입니다

0개의 댓글