- SELECT 문:
• 메인 쿼리의 SELECT 목록에서 서브쿼리 결과를 사용할 수 있습니다.
SELECT (SELECT COUNT(*) FROM orders WHERE customer_id = c.id) AS order_count
FROM customers c;
- FROM 절:
• 서브쿼리를 테이블처럼 사용하여 메인 쿼리의 FROM 절에서 사용할 수 있습니다.
SELECT *
FROM (SELECT customer_id, COUNT(*) AS order_count FROM orders GROUP BY customer_id) AS order_summary;
- WHERE 절:
• 조건을 지정하기 위해 서브쿼리를 사용할 수 있습니다. 예를 들어, 특정 조건을 만족하는 레코드를 필터링할 수 있습니다.
SELECT *
FROM products
WHERE category_id IN (SELECT id FROM categories WHERE name = 'Electronics');
- HAVING 절:
• 그룹화된 결과에 조건을 추가하기 위해 서브쿼리를 사용할 수 있습니다.
SELECT customer_id, COUNT(*) AS order_count
FROM orders
GROUP BY customer_id
HAVING order_count > (SELECT AVG(order_count) FROM (SELECT COUNT(*) AS order_count FROM orders GROUP BY customer_id) AS avg_orders);