[내일배움캠프] '25.08.11(월) / 2주차(1) - SOLVE SQL 난이도1 풀이

solve SQL 문제 지옥 ☠️
난이도 1도 결코 쉾지않다.
갈 길이 멀구만 🚴 🚴🏻‍♀️ 🚴🏻‍♂️


💡 오늘의 TIL 을 시작해 보겠다.
    1. SOLVE SQL 난이도 1 문제 
    2. 오늘의 회고
    3. 내일의 계획

 

1. SOLVE SQL 난이도 1 문제 ...

Q1) [우리 플랫폼에 정착한 판매자1] 정답률 28%

  •  총 주문이 100건 이상 들어온 판매자 리스트를 불러오는 쿼리문 작성
# 내가 시도한 쿼리문

select seller_id,
       orders
from 
(
select seller_id,
       count(distinct order_id) as orders
from olist_order_items_dataset
group by 1
)
where orders >= 100
# 팀원이 시도한 쿼리문

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


⁉️ order_id 앞에 distinct 를 넣어야만 하는 이유?

같은 주문(order_id) 건 아래에 여러가지의 상품(product_id)가 있을 수 있기 때문에, order_id의 중복을 제거해야 한다.

예를들어  order_id : product_id 가 있을 때, 
                 ➡️ A : 후라이팬, A : 냄비, A : 수저 

💡 위 처럼 같은 주문 건 안에 다른 여러가지 상품이 있을 수 있어서 중복을 제거해야 한다. 

 

 

Q2) [데이터 그룹으로 묶기] 정답률 30%

select quartet,
       round(avg(x), 2) as x_mean,
       round(var_samp(x), 2) as x_var,
       round(avg(y), 2) as y_mean,
       round(var_samp(y), 2) as y_var
from points
group by 1
quartet 로 구분되는 각 서브셋 데이터에 대하여 각 통계량 구하기.

평균은 avg() 로 많이 봤지만, 표본분산은 처음 마주했다. 
📌 표본분산 구하는 함수는 var_samp() 이다.

 

 

 


2. 오늘의 회고

solve sql 문제를 계속 풀어보면서 패턴을 익히고 작성해봐야겠다. 난이도 1 도 결코 쉽지 않은 문제들이었다.

4.5개월 후에 지금을 돌아봤을 때, 후회하지 않기를 바라는 마음이다.

 

 

 


3. 내일의 계획

  • (아티클) 비개발자를 위한 엑셀로 이해하는 SQL : FROM / SELECT / WHERE / ORDER BY
  • (SQL) 세션 2회차 과제, solve sql 문제 연습

 

 

 

 

끝.