728x90
반응형
방문한 고객 중에서 거래를 하지 않은 고객을 찾는 문제입니다.
SELECT v.CUSTOMER_ID, COUNT(*) as count_no_trans
FROM VISITS v
LEFT JOIN TRANSACTIONS t ON v.VISIT_ID = t.VISIT_ID
WHERE t.VISIT_ID IS NULL
GROUP BY v.CUSTOMER_ID;
COUNT(*)는 SQL에서 사용하는 집계 함수입니다. 이 함수는 특정 쿼리 결과의 행 수를 반환합니다. *는 모든 행을 의미하므로, COUNT(*)는 결과 집합의 모든 행을 세는 것을 의미합니다.
예를 들어, SELECT COUNT(*) FROM VISITS; 쿼리는 VISITS 테이블에 있는 모든 행의 수를 반환합니다.
따라서, 위의 쿼리에서 COUNT(*) as count_no_trans는 TRANSACTIONS 테이블에서 일치하는 VISIT_ID가 없는 VISITS 테이블의 행 수, 즉 거래가 이루어지지 않은 방문의 수를 계산합니다. 이 값은 count_no_trans라는 이름의 열로 결과에 표시됩니다. 이렇게 하면 각 고객이 얼마나 많은 방문에서 거래를 하지 않았는지 알 수 있습니다.
LEFT JOIN을 사용하여 VISITS 테이블의 모든 레코드를 포함하고,
TRANSACTIONS 테이블에 해당 VISIT_ID가 없는 레코드를 찾아야 합니다.
728x90
반응형
'Leetcode' 카테고리의 다른 글
2665. Counter II (0) | 2024.05.10 |
---|---|
2704. To Be Or Not To Be (0) | 2024.05.07 |
67. Add Binary (0) | 2024.05.03 |
28. Find the Index of the First Occurrence in a String (0) | 2024.05.02 |
237. Delete Node in a Linked List (0) | 2024.05.01 |