
4주차 핵심은 Subquery랑 JOIN임. 그걸로 복잡한 연산을 깔끔하게 정리하는 법 배우는 주차.
📘 KDC SQL 4주차 요약
🧠 이번 주 목표
- Subquery 써서 여러 번 연산 한 큐에 끝내기
- JOIN으로 다른 테이블 정보 같이 가져오기
1. 문자 포맷 변경 & 조건문 복습
REPLACE: 문자열 일부 바꾸기
SUBSTRING: 문자열 일부 잘라오기
CONCAT: 문자열 합치기
IF, CASE WHEN: 조건 따라 값 다르게 설정 가능함
→ 이거 까먹었으면 앞 주차 복습하고 오면 좋음
2. Subquery란?
- SELECT문 안에 또 다른 SELECT문 넣는 것
- 복잡한 계산, 조건문, 필터링에 유용함
언제 쓰냐면:
- 연산 결과를 또 다른 계산에 써야 할 때
- 평균 같은 집계값으로 필터링할 때
- 특정 조건 만족하는 하위 집합만 뽑고 싶을 때
구조:
SELECT ...
FROM (
SELECT ...
FROM ...
) AS 별명
3. 실습 예시 (Subquery)
- 주문 준비시간이 25분 넘는 경우 구하기
- 평균 단가에 따라 수수료율 계산해서 더하기
- 지역 + 평균 배달시간으로 그룹 나누기
- 음식 타입 + 지역 기준으로 주문수량, 식당 수 세서 수수료율 구하기
→ CASE WHEN, GROUP BY, AVG, SUM, COUNT랑 조합해서 쓰면 무적
4. JOIN이란?
- 서로 다른 테이블 합칠 때 쓰는 문법
- 엑셀의 VLOOKUP 같은 개념
종류
INNER JOIN: 양쪽 테이블 다 값 있을 때만
LEFT JOIN: 왼쪽 테이블 기준, 오른쪽 비어도 포함
기본 구조
SELECT ...
FROM 테이블1 a
LEFT JOIN 테이블2 b ON a.공통컬럼 = b.공통컬럼
5. 실습 예시 (JOIN)
- 주문 정보 + 고객 정보 합치기
- 음식 타입별 주문별 결제 수단, 수수료율 확인
- 고객이 주문한 식당 목록 보기 (중복 제거, 정렬)
- 주문 가격 * 수수료율 → 주문별 수수료 계산
- 50세 이상 고객 → 경로 할인율 계산 + 음식타입별 합산
📌 정리
- Subquery는 쿼리 안에 쿼리 → 복잡한 계산을 깔끔하게 해결함
- JOIN은 테이블 합치기 → 필요한 정보 모아서 분석 가능
CASE WHEN, GROUP BY, AVG, SUM, COUNT 다 함께 써야 진짜 제맛
- 쿼리 짜기 전에는 “어떤 테이블?”, “어떤 컬럼?”, “어떤 조건?”, “어떤 함수?” 항상 정리하고 시작해야 헷갈리지 않음