DB/postgres

postgresql - dvdrental 실습(4)

@예민한 방구석여포 힘히힘 2021. 3. 9. 12:15
반응형

패스트 캠퍼스~ 패스트 팸퍼스~ 

 

bgm: 👨🏿‍🤝‍👨🏿메이플스토리👨🏿‍🤝‍👨🏿 

 🎈Congratulations on eunji job! 🎈

 

 

 

 

 

 --1. DVD렌탈 시스템의 관리자는 고객별 매출 순위를 알고 싶다.

내가 관리자라고 생각을 해보며 야근 하기 싫은 다짐으로 고민해보자.

 

사진이 조금 옹졸 한데, 

 

이 두가지의 table을 가지고 작업을 진행해야 한다. 

 

데이터 보니, payment_id, customer_id 는 pk 이다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 SELECT a.customer_id , sum(a.amount) AS sum_amount
 FROM payment a
 GROUP BY a.customer_id

 

 --고객별 합계가 나옴. 어떤 고객이 가장 많이 매출을 일으켰는지 알수 있다.

 

 

 

 

 SELECT a.customer_id , row_number() OVER (ORDER BY a.sum_amount desc) customer_rank, a.sum_amount
 FROM 
 (  SELECT customer_id , sum(amount) AS sum_amount
  FROM payment
    GROUP BY customer_id 
 ) a
 ORDER BY customer_rank;
 -- 고객별 매출 순위를 매겨줌.--

 

 

 

 

--테이블을 새로 생성해줌. CTAS 기법 사용!! 

:CTAS란?

CREATE TABLE AS SELECT 의 약자임!

 

 CREATE TABLE customer_rank AS 
 SELECT a.customer_id , row_number() OVER (ORDER BY a.sum_amount desc) customer_rank
 FROM 
 (  SELECT customer_id , sum(amount) AS sum_amount
  FROM payment
    GROUP BY customer_id 
 ) a
 ORDER BY customer_rank;
 -- 고객별 매출 순위를 매겨줌.--

 

 

SELECT *FROM customer_rank;

'DB > postgres' 카테고리의 다른 글

postgresql - dvdrental 실습(6)  (0) 2021.03.11
postgresql - dvdrental 실습(5)  (0) 2021.03.10
postgresql - dvdrental 실습(4)  (0) 2021.03.09
postgresql - dvdrental 실습(3)  (0) 2021.02.25
postgresql - dvdrental 실습(2)  (0) 2021.02.24
postgresql - dvdrental 실습(1) (Roll-up)  (0) 2021.02.24
1 2 3 4 5 6 7 8