데브허브 | DEVHUB | Visits Without Purchases - SQL Technical Interview QuestionVisits Without Purchases - SQL Technical Interview Question
- SQL 인터뷰 질문 "구매 없는 방문"은 고객이 상점을 방문했지만 아무것도 구매하지 않은 경우를 찾는 문제입니다. 🛒
- 주어진 테이블은
store_visits (방문 ID, 고객 ID)와 purchases (구매 ID, 방문 ID, 구매 금액)입니다. 📊
- 목표는 구매 없이 방문한 고객의 ID와 그러한 방문 횟수를 반환하는 것입니다. 🎯
- 핵심 SQL 솔루션은
store_visits 테이블을 purchases 테이블과 LEFT JOIN하는 것입니다. 🤝
LEFT JOIN을 통해 모든 방문 기록을 유지하고, purchases 테이블에 일치하는 항목이 없는 방문(즉, 구매가 없는 방문)은 purchase_id가 NULL로 표시됩니다. 🚫
WHERE P.purchase_id IS NULL 조건을 사용하여 구매가 이루어지지 않은 방문만 필터링합니다. 🔍
GROUP BY customer_id와 COUNT(V.visit_id)를 사용하여 각 고객별로 구매 없는 방문 횟수를 집계합니다. 🔢
LEFT JOIN의 본질은 왼쪽 테이블의 모든 행을 유지하고, 오른쪽 테이블에 일치하는 행이 없으면 오른쪽 열에 NULL 값을 채우는 것입니다. 💡
- 이 문제는
LEFT JOIN과 WHERE IS NULL 패턴을 이해하는 것이 중요하며, 이는 SQL에서 흔히 사용되는 기법입니다. ✅