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
'MySql' 카테고리의 다른 글
[내일 배움 캠프 3-4] IF, CASE 조건 (0) | 2025.03.24 |
---|---|
[내일 배움 캠프 3-2] 필요한 포맷대로 SQL 가공하기(REPLACE, SUBSTRING, CONCAT) (0) | 2025.03.22 |
[MySQL]집계 함수란? (0) | 2025.03.22 |
[MySQL] SELECT, FROM, WHERE 데이터 조회하기 (0) | 2025.03.21 |
[MySQL] 데이터베이스란? (0) | 2025.03.21 |