MySql

[MySQL] SQL 실행 순서 + 2주차 숙제

kimyongjun0129 2025. 3. 22. 19:39

2주차까지 복습하면서 느낀 것 :

이해없이, 쿼리를 작성하고 그때마다 결과를 확인하는 것에만 의지하는 것은 어려운 문제에 직면했을 때, 오히려 더 발목을 잡는다고 느꼈다.

따라서 정확한 이해를 위해 SQL 실행 순서에 대해 추가적으로 공부하였다. SQL 실행 순서에 대한 이해가 있어야 쿼리 문을 자세히 이해하는데 도움이 된다.

 

 

1. SQL 실행 순서

  1. FROM → 테이블을 선택
  2. WHERE → 개별 행(raw)을 필터링
  3. GROUP BY → 그룹을 만든다 (여기서 집계 대상 그룹이 결정됨)
  4. HAVING → 그룹별로 필터링
  5. SELECT → 최종적으로 컬럼을 선택하고, 여기서 집계 함수가 실행됨
  6. ORDER BY → 정렬

 

 

2. 숙제

[문제]

  • 음식 종류별 가장 높은 주문 금액과 가장 낮은 주문금액을 조회하고, 가장 낮은 주문금액 순으로 (내림차순) 정렬하기

[지시사항]

  1. 실습에서 사용한 Query를 적기 전에 흐름을 정리하기
  2. 가장 높은 금액, 가장 낮은 금액은 MIN, MAX 함수로 구할 수 있다.
  3. 내림차순은 desc를 함께 써줘야 한다.

[전체 흐름 정리]

  • FROM → food_orders table
  • WHERE → X (WHERE 절에는 집계 함수 사용 못하기 때문)
  • GROUP BY → cuisine_type
  • HAVING → X (그룹한 결과를 필터링 할 필요가 없으므로 == 특정 그룹을 제외할 필요가 없다)
  • SELECT → cuisine_type, MIN(price), MAX(price)
  • ORDER BY → MIN(price) desc