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
진짜 엄청 간단한 것만 핵심적으로 다뤄주시는데... 뒤에서 구글시트랑 어떤식으로 연결해서 실무에서 쓰는 걸 보여주실지 매우 기대가 된다!
'[공부] 데이터 분석 활용' 카테고리의 다른 글
[SQL 강의] 러닝스푼즈 | SQL과 구글 시트로 배우는 데이터 리터러시 첫 걸음 (5) 보고서 작성 (1) | 2024.02.20 |
---|---|
[SQL 강의] 러닝스푼즈 | SQL과 구글 시트로 배우는 데이터 리터러시 첫 걸음 (4) 데이터 분석 방법론 (1) | 2024.02.18 |
[SQL 강의] 러닝스푼즈 | SQL과 구글 시트로 배우는 데이터 리터러시 첫 걸음 (3) 스프레드시트 활용 (1) | 2024.02.04 |
[SQL 강의] 러닝스푼즈 | SQL과 구글 시트로 배우는 데이터 리터러시 첫 걸음 (1) (1) | 2024.01.30 |
[SQL 실전 무료강의] 프로젝트 1. 주간 활성 유저 감소 (0) | 2024.01.19 |