[SQL테스트]우리 플랫폼에 정착한 판매자 2

김준석·2024년 1월 23일

코딩테스트 - SQL

목록 보기
29/96

문제

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

0개의 댓글