https://solvesql.com/problems/settled-sellers-2/
olist_order_items_dataset 테이블에는 주문 안에 어떤 상품이 포함되어 있는지, 상품의 판매자는 누구인지 등 상품 단위의 데이터가 들어있습니다.
상품 가격이 50달러 이상인 주문이 100건 이상 들어온 판매자 리스트를 주문 건수가 많은 순서대로 출력하는 쿼리를 작성해주세요.
쿼리 결과에는 아래 컬럼이 있어야 합니다.
seller_id - 판매자 ID
orders - 판매자가 판매한 주문 건수
WITH cte AS (
SELECT seller_id,COUNT(DISTINCT CASE WHEN price>=50 THEN order_id END) AS orders
FROM olist_order_items_dataset
GROUP BY 1
ORDER BY 2 DESC
)
SELECT seller_id, orders
FROM cte
WHERE 1=1
AND orders>=100
위와 같은 방법도 있지만
스터디 하시는 분이 좀 더 가벼운 코드를 작성하셨길래 가져와 보았다.
select
seller_id,
count(DISTINCT order_id) as orders
from olist_order_items_dataset
where
price >= 50.0
group by 1
having count(DISTINCT order_id) >= 100
order by 2 desc