본문 바로가기

[공부] 데이터 분석 활용

[SQL 강의] 러닝스푼즈 | SQL과 구글 시트로 배우는 데이터 리터러시 첫 걸음 (2) SQL 활용

SQL 활용 부분은 코딩테스트 문제풀이로 충분하지 않을까 해서 빠르게 스킵하려다가, 실무에서 자주 쓰는 데이터와 출력 방식을 배울 수 있을 것 같아서 문제풀이 위주로 간단히 기록.

 

 

1. 전체 주문 현황을 파악하기 위해서 [주문 수 / 주문 매출 / 최대 주문 매출 / 최소 주문 매출 / 평균 주문 매출]을 산출해주세요.

SELECT COUNT(order_no) ORD_CNT,
      SUM(SALES) TOTAL_SALES,
      MAX(SALES) AS MAX,
      MIN(SALES) AS MIN,
      AVG(SALES) AS AVG
FROM `smiling-mark-412804.practice.order_info` LIMIT 100

 

 

2. 월별 주문 현황을 파악하기 위해서 각 월의 [주문 수 / 주문 매출 / 고객 수 / 주문 1건당 평균 매출 / 고객 1명당 평균 매출]을 산출해주세요.

SELECT count(distinct o.order_no) ord_cnt, 
       sum(sales) total_sales,
       count(distinct customer_id) ctm_cnt,
       round (sum(sales) / count(distinct o.order_no) ,2) avg_sales,
       round (sum(sales) / count(distinct customer_id) ,2) avg_sales_by_mem
  FROM `smiling-mark-412804.practice.order_info` o join practice.reservation r
on o.reserv_no = r.reserv_no

 

3. 고객 정보를 파악하기 위해서 [성별과 직업별 고객 수] 를 산출해주세요. (단, 성별과 직업의 정보가 없는 경우는 'no'라고 변경)

SELECT case when sex_code = 'null' then 'no' 
            else sex_code end as sex_code, 
       case when job = 'null' then 'no' 
            else job end as job,
       count(*) as total
  FROM `smiling-mark-412804.practice.customer` 
group by 1,2
order by 1,2

 

4. 상품 id별 주문 현황을 파악하기 위해서 [총 주문수 / 총 매출 / 총 주문수량 / 1주문 평균 매출액]을 산출해보고, 총 주문수량이 100건 이상인 경우로 최종 산출해주세요.

select item_id, 
       count(order_no) ord_cnt, 
       sum(sales) total_sales, 
       sum(quantity) total_qtt,
       round(sum(sales)/ count(order_no),2) as avg_sales
from `smiling-mark-412804.practice.order_info` 
group by item_id
having sum(quantity) >= 100

 


 

진짜 엄청 간단한 것만 핵심적으로 다뤄주시는데... 뒤에서 구글시트랑 어떤식으로 연결해서 실무에서 쓰는 걸 보여주실지 매우 기대가 된다!