데이터 분석 기술 블로그

우리 플랫폼에 정착한 판매자 1 _ Lv1 * 본문

SQL/문제풀이

우리 플랫폼에 정착한 판매자 1 _ Lv1 *

데이터분석가 이채은 2024. 9. 12. 09:00

 

Solution

SELECT seller_id, COUNT(DISTINCT order_id) AS orders
FROM olist_order_items_dataset
GROUP BY seller_id
HAVING COUNT(DISTINCT order_id) >= 100;

 

 

처음에는 WHERE 절을 사용해서 COUNT를 사용하려고 했는데 계속 오류가 났다. 찾아보니 WHERE은 집계 함수를 사용할 수 없고 개별 행에 대한 조건을 필터링하는 데 사용된다. 집계 함수를 사용하려면 HAVING 절을 사용해야 한다.

HAVING 절에 대한 내용은 2024.08.27 - [SQL/SQL 개념] - HAVING 이걸 참고하자.

 

또 DISTINCT 없이 사용했었는데 '레코드 개수가 다릅니다'라고 틀렸다. 한 주문 안에 여러 상품이 포함된 경우, 주문 건수가 상품 수만큼 카운트될 수 있을 거 같아 중복을 제거해 주는 DISTINCT 키워드를 사용해서 맞았다.