년간 집계 -> 월간집계 셀렉트 방법 문의 0 6 921

by 웅아 [SQL Query] [2020.03.26 10:41:38]


11.png (27,138Bytes)
22.png (13,564Bytes)

년 단위 집계테이블을 월단위 집계 테이블에 인서트 하려 합니다. 쿼리로 풀수 있는 방법이 있을까요? 년단위 컬럼을 월단위 컬럼으로 만들거나 월단위 집계에 넣고 싶습니다.

 

사용디비는 PG 입니다.

버전 : PostgreSQL 10.12

SELECT YY
     , HSPT_CD
     , PROD_MLSFC_CD
     , MON_01
     , MON_02
     , MON_03
     , MON_04
     , MON_05
     , MON_06
     , MON_07
     , MON_08
     , MON_09
     , MON_10
     , MON_11
     , MON_12
  FROM TF_SUMM_YY 
 WHERE 1 = 1 
   AND YY BETWEEN '2010'  AND '2019' 
   AND DV='1'
;
   
  
SELECT YM
     , HSPT_CD
     , PROD_MLSFC_CD
     , GOAL_VAL 
  FROM TF_SUMM_TG 
 WHERE 1 = 1 
   AND LEFT(ym,4)='2010';

by 마농 [2020.03.26 10:52:06]

UNPIVOT 방식으로 구현하시면 됩니다.
DBMS 종류와 버전에 따라 구문 차이가 있습니다.
질문시 DB 와 버전 명시해 주세요.


by 웅아 [2020.03.26 11:08:00]

PG를 쓰고 있습니다.


by 마농 [2020.03.26 11:16:36]

PG 가 뭔가요? PostgreSQL ?


by 웅아 [2020.03.26 11:31:00]

넵 Postgre sql 10.12 버전입니다


by 마농 [2020.03.26 11:35:51]
-- INSERT INTO tf_summ_tg
SELECT yy || LPAD(lv, 2, '0') ym
     , hspt_cd
     , prod_mlsfc_cd
     , CASE lv
       WHEN  1 THEN mon_01
       WHEN  2 THEN mon_02
       WHEN  3 THEN mon_03
       WHEN  4 THEN mon_04
       WHEN  5 THEN mon_05
       WHEN  6 THEN mon_06
       WHEN  7 THEN mon_07
       WHEN  8 THEN mon_08
       WHEN  9 THEN mon_09
       WHEN 10 THEN mon_10
       WHEN 11 THEN mon_11
       WHEN 12 THEN mon_12
        END goal_val
  FROM tf_summ_yy
     , generate_series(1, 12) lv
 WHERE 1 = 1
   AND yy BETWEEN '2010' AND '2019'
   AND dv = '1'
;

 


by 웅아 [2020.03.26 11:41:47]

와 이런 방법으로도 만들수 있군요 정말 감사합니다!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입