AI 시대 DB 모델링 & SQL 완벽 마스터3-8 연습 문제
테크타니 LEARN — 섹션 03 · 연습 문제

3-8 연습 문제 — CASE / 서브쿼리,
직접 짜본 SQL만 머리에 남는다

이번 강의에서 배운 세 가지 — CASE WHEN ... THEN ... END, CASE + GROUP BY, WHERE 절 안 서브쿼리를 손으로 확인합니다. 눈으로 읽은 SQL은 일주일이면 사라지지만, 직접 짜다 틀려본 SQL은 머리에 남습니다. 마지막은 섹션 3을 마무리하는 상관 서브쿼리 도전 문제입니다.

문제3문제 (도전 1 포함)권장 소요20분사용 테이블members · products도구DBeaver + AI 과외 선생님

이번 연습의 위치

3-1 ~ 3-5 기본 문법

완료 ✓

3-6 ~ 3-7 JOIN

완료 ✓

3-8 CASE/서브쿼리

강의 완료 ✓

3-8 연습 문제

지금 여기

섹션 4 DB 모델링

관계의 구조

AI 과외 선생님 활용법

2-4에서 만든 AI 과외 선생님 세션을 그대로 쓰세요. 막히면 정답이 아니라 힌트만 요청하고 — 다 푼 뒤에는 본인 SQL과 결과를 던지며 “이 결과가 맞는지 검증해줘” 라고 물어보세요. 직접 짜고 → 검증받는 이 순서가 실력이 됩니다.

문제 1. 회원을 연령대로 분류

members 의 모든 회원에 대해 — 이름·나이·연령대(20대/30대/40대/50대 이상) 컬럼을 함께 출력.

기대 결과: 20행 · 첫 줄 — 김철수 | 35 | 30대

기대 결과 — 20행 중 앞부분
member_nameage연령대
김철수3530대
이영희2820대
박민수4240대
20 rows — 모든 회원 옆에 연령대 컬럼이 붙으면 성공
정답 보기
SELECT
  member_name,
  age,
  CASE
    WHEN age < 30 THEN '20대'
    WHEN age < 40 THEN '30대'
    WHEN age < 50 THEN '40대'
    ELSE '50대 이상'
  END AS 연령대
FROM
  members;
주의 — WHEN 순서

WHEN 은 위에서부터 평가되므로 작은 범위부터 적어야 정확.

문제 2. 연령대별 회원 수

위 분류를 활용 — 연령대별 회원 수. 회원 많은 순으로.

기대 결과: 4행 정도 (20대 / 30대 / 40대 / 50대 이상)

정답 보기
SELECT
  CASE
    WHEN age < 30 THEN '20대'
    WHEN age < 40 THEN '30대'
    WHEN age < 50 THEN '40대'
    ELSE '50대 이상'
  END AS 연령대,
  COUNT(*) AS 회원수
FROM
  members
GROUP BY
  연령대
ORDER BY
  회원수 DESC;
실행 결과
연령대회원수
20대8
30대7
40대4
50대 이상1
4 rows — 합계 20명, members 전체 행 수와 일치하면 검산 끝

문제 3 (도전). 카테고리별 평균보다 비싼 상품들

각 상품에 대해 — 그 상품이 속한 카테고리의 평균 가격보다 비싼 상품들만 출력. (상관 서브쿼리)

기대 결과: 카테고리 안에서 평균보다 가격이 높은 상품들

힌트

WHERE 절 안에 그 카테고리의 평균 을 구하는 서브쿼리. 안쪽에서 바깥의 category_id 를 참조해야 합니다.

정답 보기
SELECT
  p1.product_name,
  p1.category_id,
  p1.price
FROM
  products p1
WHERE
  p1.price > (
    SELECT
      AVG(p2.price)
    FROM
      products p2
    WHERE
      p2.category_id = p1.category_id
  )
ORDER BY
  p1.category_id,
  p1.price DESC;

핵심: 안쪽 서브쿼리의 p2.category_id = p1.category_id — 이게 상관 서브쿼리. 바깥 쿼리의 각 행마다 안쪽이 다시 실행됨.

실행 결과 — 카테고리마다 '평균 위' 상품만
product_namecategory_idprice
패딩 점퍼1129000
후드 집업165000
무선 이어폰289000
키보드275000
블루투스 스피커265000
트러플 오일335000
유기농 꿀328000
콜드브루 원두322000
클린 코드435000
데이터 모델링 실전432000
향수589000
11 rows — 5개 카테고리 전부에서 평균 위 상품만 남았으면 성공

섹션 3 완료 🎉

✓ 섹션 3 — SQL 핵심 문법, 한방 압축 끝

8 챕터 + 8 연습 페이지를 다 풀었다면 — SQL 핵심 문법의 80% 가 손에 들어왔습니다. 이제 AI 가 만든 SQL 의 대부분을 읽고, 의심하고, 검증 할 수 있는 상태.

다음 섹션부터는 문법이 아니라 설계입니다 — 테이블이 왜 이렇게 쪼개져 있는지, 테이블 사이의 ‘관계’를 읽는 눈을 만듭니다.

NEXT LESSON4-1 관계의 구조 — 사고법 전환

SQL 문법에서 DB 설계의 세계로 — 테이블 사이의 관계를 읽는 사고법을 시작합니다.

GO ▸ 다음 강의 시작하기