MySQL 실습 (1) - 과제

조재민·2025년 5월 27일

📝 Week 1 실습 과제
각 문제에 대해 SQL 쿼리를 작성해 보세요.
🔹 실습 문제
1. 나이가 30세 이상인 고객의 이름과 이메일을 조회하세요.
2. ‘completed’ 상태인 주문의 평균 결제 금액(total_price)을 구하세요.
3. 주문이 2건 이상 있는 고객의 ID와 주문 수를 조회하세요.
4. 주문일이 2023년 4월 5일 이전인 주문을 조회하세요.
5. 고객 ID별로 주문 총액(total_price)의 합계를 계산하고, 금액이 20 이상인 고객만 표시하세요.
6. 주문별로 "주문금액등급" 컬럼을 생성하되, 금액이 20 이상이면 ‘고액’ 10 이상이면 ‘중간’ 그 외는 ‘소액’으로 표시하세요.
7. 이메일 도메인별 고객 수를 구해보세요 (예: example.com 사용 고객 수)


1번

나이가 30세 이상인 고객의 이름과 이메일을 조회하세요.

SELECT name, email FROM customers WHERE age >= 30;

고객 타겟팅, 프로모션 대상 선정 등에 자주 사용


2번

'completed' 상태인 주문의 평균 결제 금액(total_price)을 구하세요.

SELECT AVG(total_price) AS avg_completed_price FROM orders WHERE status = 'completed';

완료된 거래만 대상으로 핵심성과지표(KPI) 추출 시 사용


3번

주문이 2건 이상 있는 고객의 ID와 주문 수를 조회하세요.

SELECT customer_id, COUNT(*) AS order_count FROM orders GROUP BY customer_id HAVING COUNT(*) >=2;

충성 고객 분류, 리텐션 마케팅 대상 선정 시 유용


4번

주문일이 2023년 4월 5일 이전인 주문을 조회하세요.

SELECT * FROM orders WHERE order_date < '2023-04-05';

특정 기간 이전의 주문 기록 조회, 월말 결산 등에 사용


5번

고객 ID별로 주문 총액(total_price)의 합계를 계산하고, 금액이 20 이상인 고객만 표시하세요.

SELECT customer_id, SUM(total_price) AS total_spent FROM orders GROUP BY customer_id HAVING SUM(total_price) >= 20;

고객 Lifetime Value(LTV) 추정 시 핵심


6번

  1. 주문별로 "주문금액등급" 컬럼을 생성하되, 금액이 20 이상이면 ‘고액’ 10 이상이면 ‘중간’ 그 외는 ‘소액’으로 표시하세요.
SELECT order_id, total_price,
  CASE
    WHEN total_price >= 20 THEN '고액'
    WHEN total_price >= 10 THEN '중간'
    ELSE '소액'
  END AS price_level
FROM orders;

주문 등급 분류, A/B 테스트 그룹 설정 등에 자주 사용


7번

  1. 이메일 도메인별 고객 수를 구해보세요 (예: example.com 사용 고객 수)
SELECT 
  SUBSTRING_INDEX(email, '@', -1) AS domain,
  COUNT(*) AS customer_count
FROM customers
GROUP BY domain;

이메일 캠페인 분석, 도메인별 성향 파악 등에서 활용


profile
“누군가는 너를 사랑하고 있다.”

0개의 댓글