MySql
[MySQL] SQL 실행 순서 + 2주차 숙제
kimyongjun0129
2025. 3. 22. 19:39
2주차까지 복습하면서 느낀 것 :
이해없이, 쿼리를 작성하고 그때마다 결과를 확인하는 것에만 의지하는 것은 어려운 문제에 직면했을 때, 오히려 더 발목을 잡는다고 느꼈다.
따라서 정확한 이해를 위해 SQL 실행 순서에 대해 추가적으로 공부하였다. SQL 실행 순서에 대한 이해가 있어야 쿼리 문을 자세히 이해하는데 도움이 된다.
1. SQL 실행 순서
- FROM → 테이블을 선택
- WHERE → 개별 행(raw)을 필터링
- GROUP BY → 그룹을 만든다 (여기서 집계 대상 그룹이 결정됨)
- HAVING → 그룹별로 필터링
- SELECT → 최종적으로 컬럼을 선택하고, 여기서 집계 함수가 실행됨
- ORDER BY → 정렬
2. 숙제
[문제]
- 음식 종류별 가장 높은 주문 금액과 가장 낮은 주문금액을 조회하고, 가장 낮은 주문금액 순으로 (내림차순) 정렬하기
[지시사항]
- 실습에서 사용한 Query를 적기 전에 흐름을 정리하기
- 가장 높은 금액, 가장 낮은 금액은 MIN, MAX 함수로 구할 수 있다.
- 내림차순은 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