본문 바로가기

[공부] 데이터 분석 활용

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

스프레드시트 주요 함수

  • 다 아는 거지만 현업에서 실제로 자주 쓰는 함수 참고겸 기록!

  • 생각해본 적 없었는데 SQL = 피봇 테이블, JOIN = VLOOKUP !

 

  • 가로 방향 : JOIN (열이 늘어남)
  • 세로 방향 : UNION (행이 늘어남)

 

SQL - JOIN

 

스프레드시트 - VLOOKUP

<연습문제 풀어보기>

# ITEM_ID와 PRODUCT_NAME 별 총 주문수 및 총 매출액을 구해주세요.
SELECT item_id, product_name, count(order_no) as ord_cnt, sum(sales) total_sales
FROM `smiling-mark-412804.practice.order_info`
     LEFT JOIN practice.item
     USING (ITEM_ID)
GROUP BY 1,2
ORDER BY 1
;
# 예약일 기준, PRODUCT_NAME 별 총 주문수 및 총 매출액을 구해주세요.
SELECT reserv_date, product_name, count(order_no) as ord_cnt, sum(sales) total_sales
FROM `smiling-mark-412804.practice.order_info`
     LEFT JOIN practice.item
     USING (ITEM_ID)
     LEFT JOIN `practice.reservation`
     USING (RESERV_NO)
GROUP BY 1,2
ORDER BY 1
     ;
# 고객의 직업 및 상품별 총 주문수 / 총 매출액 / 주문 1건당 평균 매출액을 구해주세요.
SELECT job, product_name, count(order_no) as ord_cnt, sum(sales) total_sales, round(sum(sales)/count(order_no),0) as avg_sales
FROM `smiling-mark-412804.practice.order_info`
     LEFT JOIN practice.item
     USING (ITEM_ID)
     LEFT JOIN `practice.reservation`
     USING (RESERV_NO)
     LEFT JOIN `practice.customer`
     USING (customer_id)
GROUP BY 1,2
ORDER BY 1
     ;

 

<피봇테이블 연습>

 

  • 피봇테이블에서 날짜 연/월/일 나눌 수 있는 거 처음 알아서 기록 ㅇ0ㅇ

 

SQL - UNION

 

UNION ALL 할 때 주의사항

1) 두 테이블의 컬럼의 데이터타입(날짜면 날짜, 문자면 문자 등)/순서/열 개수가 동일해야 한다.

2) 컬럼명은 동일하지 않아도 된다. (위에 있는 테이블 컬럼명으로 출력)

3) 테이블끼리 연결이 아닌 쿼리의 결과문을 연결시켜준다.

 

UNION ALL과 UNION의 차이

 

1) 모든 열의 값이 모두 동일할 때, 중복된 열은 하나만 출력함

2) 위의 정보가 출력되고, 아래의 정보가 삭제되어 출력됨

 


생각보다 강의 내용이 너무 쉬워서 (^_ㅠ) 아쉽지만 내가 이전 회사에서 일하면서 필요에 따라 공부해서 내맘대로 자유롭게 썼던 구글시트 관련 기능들이 나만 그렇게 쓰는 건 아니고(!) 헛된 것도 아니었고, 네카라쿠배 급의 다른 회사에서도 충분히 유용하게 활용할 수 있구나 생각이 들어서 조금쯤 안도감이 들었다.

 

이 다음 챕터에서는 시계열 분석, 코호트 분석 등 안해봤던 분석방법들을 배울 수 있을 것 같아 기대가 된다.