[SQL] 실습 정리

2022. 12. 3. 00:00·Development Study/Backend
728x90

지난시간 복습

0.복습.1. Orders table의 orderdate를 월, 일 정보만 들고오기

select substring(date_format(orderdate, "%Y%m%d"), 5, 4)
from Orders

0.복습.2. 고객 별 월별 구매금액

select custid, substring(date_format(orderdate, "%Y%m%d"), 5, 2), sum(saleprice)
from Orders
group by custid, substring(date_format(orderdate, "%Y%m%d"), 5, 2)

0.복습.3. 만들어 둔 뷰 삭제하기

drop VIEW V_Orders;

이번 범위는 ~view까지..!

 

이번시간 실습 - csv파일 toad에 불러와 가공해보기

약 10,000개의 데이터를 가진 exel 파일을 불러와서 더 많은 데이터를 가공해보도록 하겠다

select *
from tmp;

1.tmp.1. 월별 총 구매금액

select substr(orddate, 5, 2), sum(prod_amt)
from tmp
group by substr(orddate, 5, 2)

hint: OO별, OO별 형식의 문제가 나온다면 GROUP BY를 이용하도록 하자

 

1.tmp.2. 고객별 월별 총 구매금액

select substr(orddate, 5, 2), custid , sum(prod_amt)
from tmp
group by substr(orddate, 5, 2), custid

1.tmp.3. 고객별 총 구매금액별로 출력

select custid , sum(prod_amt)
from tmp
group by custid

1.tmp.4. tmp table view로 만들어두기

create VIEW v_temp
as select custid, substr(orddate,1,6), sum(prod_amt)
from tmp
group by custid, substr(orddate,1,6)
order by 1,3 desc

 

1.tmp.5. 위 내용을 그대로 table로 만들기 - create table ( ) as select ( )

create table v_tempt
as select custid, substr(orddate,1,6), sum(prod_amt)
from tmp
group by custid, substr(orddate,1,6)
order by 1,3 desc

select * from v_tempt

2.cust_tmp.1. 성별, 연령대별, 월별, 총 구매금액

select ct.CLNT_GENDER, ct.CLNT_AGE, substr(tp.orddate, 5, 2), sum(tp.prod_amt)
from cust_tmp ct, tmp tp
where ct.custid = tp.custid
group by ct.CLNT_GENDER, ct.CLNT_AGE, substr(tp.orddate, 5, 2)
order by ct.CLNT_GENDER, ct.CLNT_AGE, sum(tp.prod_amt) desc;

2.tmp.2. 월별 구매고객 수

select substr(orddate, 5, 2), count(distinct(custid))
from tmp
group by substr(orddate, 5, 2)
order by 1;

2.tmp.3. prod_cnt가 null이면 0으로, 월별 인당 구매금액

select substr(orddate, 5, 2), ifnull(count(prod_cnt),0), sum(prod_amt), sum(prod_amt)/count(distinct custid)
from tmp
group by substr(orddate, 5, 2), custid, ifnull(prod_cnt, 0);

 

728x90
저작자표시 비영리 변경금지 (새창열림)

'Development Study > Backend' 카테고리의 다른 글

[배경지식] Django, Flask, FastAPI의 차이점을 알아보자  (0) 2022.12.31
[SQL] 실습 + 빅데이터 분석 방법들  (0) 2022.12.10
[SQL] 실습 정리 (View)  (0) 2022.11.26
[SQL] 실습 정리(SUB_QUARY, UPDATE)  (0) 2022.11.19
[SQL] 실습 정리(+JOIN, OUTER_JOIN, CASE, SUBQUARY)  (0) 2022.11.12
'Development Study/Backend' 카테고리의 다른 글
  • [배경지식] Django, Flask, FastAPI의 차이점을 알아보자
  • [SQL] 실습 + 빅데이터 분석 방법들
  • [SQL] 실습 정리 (View)
  • [SQL] 실습 정리(SUB_QUARY, UPDATE)
ThreeLight
ThreeLight
ThreeLight Studio의 블로그, TimeMap.exe에 오신 것을 환영합니다.
  • ThreeLight
    TimeMap.exe
    ThreeLight
  • 전체
    오늘
    어제
    • 분류 전체보기 (245)
      • Checkpoint (1)
      • (3D)Dev Deep Dive (0)
        • Templates & Guides (9)
        • Frontend origin (9)
        • Backend origin (1)
        • TroubleShootings (4)
      • Development Study (95)
        • Frontend (36)
        • Backend (21)
        • CS(Computer Science) (2)
        • Background Knowledges (11)
        • Algorithm (2)
        • Mobile (3)
        • AWS (6)
        • Python (6)
        • MSW(MapleStoryWorlds) (8)
      • Coding Test (59)
        • 문제.zip (1)
        • BaekJoon_JavaScript (0)
        • Programmers_JavaScript (9)
        • BaekJoon_Python (23)
        • Programmers_Python (10)
        • Undefined_Python (3)
        • Programmers_SQL (13)
      • 활동내역.zip (43)
        • 개인 (21)
        • Techeer (12)
        • Bootcamp (7)
        • Hackathon (1)
        • TeamProjects (2)
      • 여기 괜찮네??(사이트 | App) (5)
      • 재미있는 주제들 (8)
      • 개발 외 공부 저장소 (11)
        • 생산운영관리 (3)
        • 생활속의금융 (6)
        • 경영정보시스템 (2)
  • 링크

    • TimeMap.dmg (Portfolio)
    • GitHub 바로가기
    • 오픈프로필(카카오톡)
    • Medium 바로가기
    • Disquiet 바로가기
    • LinkedIn 바로가기
  • 인기 글

  • 태그

    JavaScript
    Baek Joon
    Python
    HTML
    프로그래머스
    TypeScript
    react
    programmers
    CSS
    SQL
  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
ThreeLight
[SQL] 실습 정리
상단으로

티스토리툴바