On the journey of

[SolveSQL]우리 플랫폼에 정착한 판매자1, 점검이 필요한 자전거 찾기 본문

코딩테스트/SQL

[SolveSQL]우리 플랫폼에 정착한 판매자1, 점검이 필요한 자전거 찾기

dlrpskdi 2023. 6. 13. 14:13

1. 우리 플랫폼에 정착한 판매자 1- https://solvesql.com/problems/settled-sellers-1/

 

Q. olist_order_items_dataset 테이블에는 주문 안에 어떤 상품이 포함되어 있는지, 상품의 판매자는 누구인지 등 상품 단위의 데이터가 들어있습니다.

우리 플랫폼에서 상품을 많이 판매하고 있는 판매자가 누구인지 알고 싶습니다. 총 주문이 100건 이상 들어온 판매자 리스트를 출력하는 쿼리를 작성해주세요.

쿼리 결과에는 아래 컬럼이 있어야 합니다.

  • seller_id - 판매자 ID
  • orders - 판매자가 판매한 주문 건수

A. 어떤 컬럼이 있어야 하는지 명시해 주었으므로 기본적으로 select seller_id, orders이나, orders 컬럼은 count를 통해 계산을 진행해야 한다. 특이점이라면, group by가 포함되면서 having 조건절이 포함됐다는 것.

select seller_id, count(distinct(order_id)) as orders
from olist_order_items_dataset 
group by seller_id
having orders >= 100

성공적으로 출력됐다 :-)

 

2. 점검이 필요한 자전거 찾기 - https://solvesql.com/problems/inspection-needed-bike/

 

solvesql

 

solvesql.com

Q. 따릉이를 운영하는 서울시에서는 매달 따릉이 자전거의 정기점검을 진행하고 있습니다. 1달에 주행 거리가 50km 이상인 자전거가 정기점검 대상에 포함됩니다.

2021년 2월 정기점검 대상 자전거를 추출하려고 합니다. rental_history 테이블을 사용해 2021년 1월 한 달간 총 주행 거리가 50km 이상인 자전거의 ID를 출력하는 쿼리를 작성해주세요.

 

A. 사실 Group by - Having 절을 쓴다는 점에서 위 문제와 크게 다를 게 없었다...

select bike_id
from rental_history
WHERE DATE(rent_at) like '2021-01%'
group by bike_id
having sum(distance) >= 50000

 

쿼리문 결과로 잘 출력된 걸 볼 수 있다 :)