복잡한 서브쿼리를 활용한 데이터 조회 연습문제

이번 연습문제에서는 서브쿼리를 활용하여 복잡한 데이터 조회를 실습해보겠습니다. 서브쿼리는 데이터베이스에서 중첩된 쿼리를 사용하여 좀 더 복잡한 조건으로 데이터를 조회할 수 있는 강력한 기능입니다.

문제

고객 테이블과 주문 테이블이 있는 데이터베이스가 있다고 가정해보겠습니다. 고객 테이블은 다음과 같은 컬럼이 있습니다.

주문 테이블은 다음과 같은 컬럼이 있습니다.

다음과 같은 요구사항에 맞게 복잡한 서브쿼리를 작성해보세요.

  1. 주문 내역이 있는 모든 고객의 이름을 조회해주세요.
  2. 총 주문 내역이 5개 이상인 고객의 이름을 조회해주세요.
  3. 최근 1주일 동안 주문한 고객의 이름을 조회해주세요.

답안

  1. 주문 내역이 있는 모든 고객의 이름을 조회합니다.
SELECT customer_name
FROM customer
WHERE customer_id IN (SELECT customer_id FROM orders);
  1. 총 주문 내역이 5개 이상인 고객의 이름을 조회합니다.
SELECT customer_name
FROM customer
WHERE customer_id IN (SELECT customer_id
                      FROM orders
                      GROUP BY customer_id
                      HAVING COUNT(order_id) >= 5);
  1. 최근 1주일 동안 주문한 고객의 이름을 조회합니다.
SELECT customer_name
FROM customer
WHERE customer_id IN (SELECT customer_id
                      FROM orders
                      WHERE order_date >= DATEADD(week, -1, GETDATE()));

위의 SQL 문장들은 각각 주어진 요구사항에 맞게 서브쿼리를 사용하여 데이터를 조회하는 예제입니다.

이렇게 서브쿼리를 활용하면 조금 더 복잡한 조건으로 데이터를 조회할 수 있으며, 데이터베이스를 효율적으로 활용할 수 있습니다.

서브쿼리는 복잡한 데이터 조회에 유용한 도구이니, 꼭 숙지하고 활용해보시기 바랍니다.

#hashtags #서브쿼리