문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
기술문서:레퍼런스:쿼리:응용:unpivot_query [2025/07/30 12:10] carlito76 |
기술문서:레퍼런스:쿼리:응용:unpivot_query [2025/11/27 12:07] (현재) carlito76 |
||
|---|---|---|---|
| 줄 10: | 줄 10: | ||
| </ | </ | ||
| - | ^ 물리명 | + | ===== 테이블 명세 ===== |
| - | | 년 | year | 문자형 | | + | ^ 물리명 |
| - | | 1월 일수 | jan_day_cnt | 숫자형 | | + | | 년 | year | 문자형 |
| - | | 2월 일수 | feb_day_cnt | 숫자형 | | + | | 1월 일수 | jan_day_cnt | 숫자형 |
| - | | 3월 일수 | mar_day_cnt | 숫자형 | | + | | 2월 일수 | feb_day_cnt | 숫자형 |
| - | | 4월 일수 | apr_day_cnt | 숫자형 | | + | | 3월 일수 | mar_day_cnt | 숫자형 |
| - | | 5월 일수 | may_day_cnt | 숫자형 | | + | | 4월 일수 | apr_day_cnt | 숫자형 |
| - | | 6월 일수 | jun_day_cnt | 숫자형 | | + | | 5월 일수 | may_day_cnt | 숫자형 |
| - | | 7월 일수 | jul_day_cnt | 숫자형 | | + | | 6월 일수 | jun_day_cnt | 숫자형 |
| - | | 8월 일수 | aug_day_cnt | 숫자형 | | + | | 7월 일수 | jul_day_cnt | 숫자형 |
| - | | 9월 일수 | sep_day_cnt | 숫자형 | | + | | 8월 일수 | aug_day_cnt | 숫자형 |
| - | | 10월 일수 | oct_day_cnt | 숫자형 | | + | | 9월 일수 | sep_day_cnt | 숫자형 |
| - | | 11월 일수 | nov_day_cnt | 숫자형 | | + | | 10월 일수 | oct_day_cnt | 숫자형 |
| - | | 12월 일수 | dec_day_cnt | 숫자형 | | + | | 11월 일수 | nov_day_cnt | 숫자형 |
| + | | 12월 일수 | dec_day_cnt | 숫자형 | ||
| + | ===== SQL 스크립트 ===== | ||
| <sxh sql; gutter: true; title: DDL;> | <sxh sql; gutter: true; title: DDL;> | ||
| CREATE TABLE ex_unpivot ( | CREATE TABLE ex_unpivot ( | ||
| 줄 46: | 줄 48: | ||
| INSERT INTO ex_unpivot ( | INSERT INTO ex_unpivot ( | ||
| year | year | ||
| - | , jan_day_cnt | + | , jan_day_cnt, |
| - | , feb_day_cnt | + | , apr_day_cnt, |
| - | , mar_day_cnt | + | , jul_day_cnt, |
| - | , apr_day_cnt | + | , oct_day_cnt, |
| - | , may_day_cnt | + | |
| - | , jun_day_cnt | + | |
| - | , jul_day_cnt | + | |
| - | , aug_day_cnt | + | |
| - | , sep_day_cnt | + | |
| - | , oct_day_cnt | + | |
| - | , nov_day_cnt | + | |
| - | , dec_day_cnt | + | |
| ) VALUES ( | ) VALUES ( | ||
| ' | ' | ||
| - | , 31 | + | , 31, 28, 31 |
| - | , 28 | + | , 30, 31, 30 |
| - | , 31 | + | , 31, 31, 30 |
| - | , 30 | + | , 31, 30, 31 |
| - | , 31 | + | |
| - | , 30 | + | |
| - | , 31 | + | |
| - | , 31 | + | |
| - | , 30 | + | |
| - | , 31 | + | |
| - | , 30 | + | |
| - | , 31 | + | |
| ); | ); | ||
| </ | </ | ||
| 줄 77: | 줄 63: | ||
| ===== MySQL/ | ===== MySQL/ | ||
| <sxh sql; gutter: true;> | <sxh sql; gutter: true;> | ||
| - | -- MySQL 4.0 이상/ | + | /* |
| + | MySQL 4.0 이상/ | ||
| + | */ | ||
| SELECT | SELECT | ||
| year | year | ||
| 줄 86: | 줄 74: | ||
| UNION ALL | UNION ALL | ||
| SELECT | SELECT | ||
| - | year, ' | + | year |
| + | , ' | ||
| , feb_day_cnt | , feb_day_cnt | ||
| FROM | FROM | ||
| 줄 93: | 줄 82: | ||
| SELECT | SELECT | ||
| year | year | ||
| - | , ' | + | , ' |
| + | , mar_day_cnt | ||
| FROM | FROM | ||
| ex_unpivot | ex_unpivot | ||
| 줄 143: | 줄 133: | ||
| , ' | , ' | ||
| , oct_day_cnt | , oct_day_cnt | ||
| - | FROM ex_unpivot | + | FROM |
| + | ex_unpivot | ||
| UNION ALL | UNION ALL | ||
| SELECT | SELECT | ||
| 줄 163: | 줄 154: | ||
| ===== MSSQL ===== | ===== MSSQL ===== | ||
| <sxh sql; gutter: true;> | <sxh sql; gutter: true;> | ||
| - | -- MSSQL 2005 이상 | + | /* |
| + | MSSQL 2000 이상 | ||
| + | */ | ||
| SELECT | SELECT | ||
| year | year | ||
| 줄 172: | 줄 165: | ||
| UNION ALL | UNION ALL | ||
| SELECT | SELECT | ||
| - | year, ' | + | year |
| + | , ' | ||
| , feb_day_cnt | , feb_day_cnt | ||
| FROM | FROM | ||
| 줄 179: | 줄 173: | ||
| SELECT | SELECT | ||
| year | year | ||
| - | , ' | + | , ' |
| + | , mar_day_cnt | ||
| FROM | FROM | ||
| ex_unpivot | ex_unpivot | ||
| 줄 229: | 줄 224: | ||
| , ' | , ' | ||
| , oct_day_cnt | , oct_day_cnt | ||
| - | FROM ex_unpivot | + | FROM |
| + | ex_unpivot | ||
| UNION ALL | UNION ALL | ||
| SELECT | SELECT | ||
| 줄 244: | 줄 240: | ||
| FROM | FROM | ||
| ex_unpivot | ex_unpivot | ||
| + | ; | ||
| + | |||
| + | /* | ||
| + | MSSQL 2005 이상 | ||
| + | */ | ||
| + | SELECT | ||
| + | year | ||
| + | , REPLACE(month, | ||
| + | , day_cnt | ||
| + | FROM ( | ||
| + | SELECT | ||
| + | year | ||
| + | , jan_day_cnt | ||
| + | , feb_day_cnt | ||
| + | , mar_day_cnt | ||
| + | , apr_day_cnt | ||
| + | , may_day_cnt | ||
| + | , jun_day_cnt | ||
| + | , jul_day_cnt | ||
| + | , aug_day_cnt | ||
| + | , sep_day_cnt | ||
| + | , oct_day_cnt | ||
| + | , nov_day_cnt | ||
| + | , dec_day_cnt | ||
| + | FROM | ||
| + | ex_unpivot | ||
| + | ) src | ||
| + | UNPIVOT ( | ||
| + | day_cnt FOR month IN ( | ||
| + | jan_day_cnt | ||
| + | , feb_day_cnt | ||
| + | , mar_day_cnt | ||
| + | , apr_day_cnt | ||
| + | , may_day_cnt | ||
| + | , jun_day_cnt | ||
| + | , jul_day_cnt | ||
| + | , aug_day_cnt | ||
| + | , sep_day_cnt | ||
| + | , oct_day_cnt | ||
| + | , nov_day_cnt | ||
| + | , dec_day_cnt | ||
| + | ) | ||
| + | ) unpvt | ||
| ; | ; | ||
| </ | </ | ||
| 줄 249: | 줄 288: | ||
| ===== Oracle/ | ===== Oracle/ | ||
| <sxh sql; gutter: true;> | <sxh sql; gutter: true;> | ||
| - | -- Oracle 9i 이상/ | + | /* |
| + | Oracle 9i 이상/ | ||
| + | */ | ||
| SELECT | SELECT | ||
| year | year | ||
| 줄 258: | 줄 299: | ||
| UNION ALL | UNION ALL | ||
| SELECT | SELECT | ||
| - | year, ' | + | year |
| + | , ' | ||
| , feb_day_cnt | , feb_day_cnt | ||
| FROM | FROM | ||
| 줄 265: | 줄 307: | ||
| SELECT | SELECT | ||
| year | year | ||
| - | , ' | + | , ' |
| + | , mar_day_cnt | ||
| FROM | FROM | ||
| ex_unpivot | ex_unpivot | ||
| 줄 315: | 줄 358: | ||
| , ' | , ' | ||
| , oct_day_cnt | , oct_day_cnt | ||
| - | FROM ex_unpivot | + | FROM |
| + | ex_unpivot | ||
| UNION ALL | UNION ALL | ||
| SELECT | SELECT | ||
| 줄 330: | 줄 374: | ||
| FROM | FROM | ||
| ex_unpivot | ex_unpivot | ||
| + | ; | ||
| + | |||
| + | /* | ||
| + | Oracle 11g 이상/ | ||
| + | */ | ||
| + | SELECT | ||
| + | year | ||
| + | , month | ||
| + | , day_cnt | ||
| + | FROM | ||
| + | ex_unpivot | ||
| + | UNPIVOT ( | ||
| + | day_cnt FOR month IN ( | ||
| + | jan_day_cnt AS ' | ||
| + | , feb_day_cnt AS ' | ||
| + | , mar_day_cnt AS ' | ||
| + | , apr_day_cnt AS ' | ||
| + | , may_day_cnt AS ' | ||
| + | , jun_day_cnt AS ' | ||
| + | , jul_day_cnt AS ' | ||
| + | , aug_day_cnt AS ' | ||
| + | , sep_day_cnt AS ' | ||
| + | , oct_day_cnt AS ' | ||
| + | , nov_day_cnt AS ' | ||
| + | , dec_day_cnt AS ' | ||
| + | ) | ||
| + | ) | ||
| ; | ; | ||
| </ | </ | ||
| 줄 335: | 줄 406: | ||
| ===== PostgreSQL ===== | ===== PostgreSQL ===== | ||
| <sxh sql; gutter: true;> | <sxh sql; gutter: true;> | ||
| - | -- PostgreSQL 7.1 이상 | + | /* |
| + | PostgreSQL 7.1 이상 | ||
| + | */ | ||
| SELECT | SELECT | ||
| year | year | ||
| 줄 344: | 줄 417: | ||
| UNION ALL | UNION ALL | ||
| SELECT | SELECT | ||
| - | year, ' | + | year |
| + | , ' | ||
| , feb_day_cnt | , feb_day_cnt | ||
| FROM | FROM | ||
| 줄 351: | 줄 425: | ||
| SELECT | SELECT | ||
| year | year | ||
| - | , ' | + | , ' |
| + | , mar_day_cnt | ||
| FROM | FROM | ||
| ex_unpivot | ex_unpivot | ||
| 줄 401: | 줄 476: | ||
| , ' | , ' | ||
| , oct_day_cnt | , oct_day_cnt | ||
| - | FROM ex_unpivot | + | FROM |
| + | ex_unpivot | ||
| UNION ALL | UNION ALL | ||
| SELECT | SELECT | ||
| 줄 418: | 줄 494: | ||
| ; | ; | ||
| </ | </ | ||
| + | |||
| + | {{tag>" | ||