문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
기술문서:레퍼런스:쿼리:응용:pivot_query [2025/07/29 18:32] carlito76 ↷ 문서가 개인문서:임시문서:기술문서:레퍼런스:쿼리:응용:pivot_query에서 기술문서:레퍼런스:쿼리:응용:pivot_query(으)로 이동되었습니다 |
기술문서:레퍼런스:쿼리:응용:pivot_query [2026/01/16 16:19] (현재) carlito76 |
||
|---|---|---|---|
| 줄 10: | 줄 10: | ||
| </ | </ | ||
| - | ^ 물리명 | + | ===== 테이블 명세 ===== |
| - | | 년 | year | 문자형 | | + | ^ 물리명 |
| - | | 월 | month | 문자형 | | + | | 년 | year | 문자형 |
| - | | 일수 | day_cnt | 숫자형 | | + | | 월 | month | 문자형 |
| + | | 일수 | day_cnt | 숫자형 | ||
| + | ===== SQL 스크립트 ===== | ||
| <sxh sql; gutter: true; title: DDL;> | <sxh sql; gutter: true; title: DDL;> | ||
| CREATE TABLE ex_pivot ( | CREATE TABLE ex_pivot ( | ||
| 줄 40: | 줄 42: | ||
| ===== MySQL/ | ===== MySQL/ | ||
| <sxh sql; gutter: true;> | <sxh sql; gutter: true;> | ||
| - | -- MySQL 5.0.1 이상/ | + | /* |
| + | MySQL 5.0.1 이상/ | ||
| + | */ | ||
| SELECT | SELECT | ||
| year | year | ||
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| FROM | FROM | ||
| ex_pivot | ex_pivot | ||
| 줄 64: | 줄 68: | ||
| ===== MSSQL ===== | ===== MSSQL ===== | ||
| <sxh sql; gutter: true;> | <sxh sql; gutter: true;> | ||
| - | -- MSSQL 2000 이상 | + | /* |
| + | MSSQL 2000 이상 | ||
| + | */ | ||
| SELECT | SELECT | ||
| year | year | ||
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| FROM | FROM | ||
| ex_pivot | ex_pivot | ||
| 줄 85: | 줄 91: | ||
| ; | ; | ||
| - | -- MSSQL 2005 이상 | + | /* |
| + | MSSQL 2005 이상 | ||
| + | */ | ||
| SELECT | SELECT | ||
| year | year | ||
| - | , [jan] AS jan_day | + | , [jan] AS jan_day_cnt |
| - | , [feb] AS feb_day | + | , [feb] AS feb_day_cnt |
| - | , [mar] AS mar_day | + | , [mar] AS mar_day_cnt |
| - | , [apr] AS apr_day | + | , [apr] AS apr_day_cnt |
| - | , [may] AS may_day | + | , [may] AS may_day_cnt |
| - | , [jun] AS jun_day | + | , [jun] AS jun_day_cnt |
| - | , [jul] AS jul_day | + | , [jul] AS jul_day_cnt |
| - | , [aug] AS aug_day | + | , [aug] AS aug_day_cnt |
| - | , [sep] AS sep_day | + | , [sep] AS sep_day_cnt |
| - | , [oct] AS oct_day | + | , [oct] AS oct_day_cnt |
| - | , [nov] AS nov_day | + | , [nov] AS nov_day_cnt |
| - | , [dec] AS dec_day | + | , [dec] AS dec_day_cnt |
| FROM | FROM | ||
| (SELECT | (SELECT | ||
| 줄 107: | 줄 115: | ||
| FROM | FROM | ||
| ex_pivot | ex_pivot | ||
| - | ) src PIVOT ( | + | ) src |
| - | MAX(day_cnt) | + | PIVOT ( |
| - | FOR month IN ( | + | MAX(day_cnt) |
| - | [jan] | + | FOR month IN ( |
| - | , [feb] | + | [jan] |
| - | , [mar] | + | , [feb] |
| - | , [apr] | + | , [mar] |
| - | , [may] | + | , [apr] |
| - | , [jun] | + | , [may] |
| - | , [jul] | + | , [jun] |
| - | , [aug] | + | , [jul] |
| - | , [sep] | + | , [aug] |
| - | , [oct] | + | , [sep] |
| - | , [nov] | + | , [oct] |
| - | , [dec] | + | , [nov] |
| - | ) | + | , [dec] |
| - | ) pvt | + | ) |
| + | ) pvt | ||
| ; | ; | ||
| </ | </ | ||
| 줄 129: | 줄 138: | ||
| ===== Oracle/ | ===== Oracle/ | ||
| <sxh sql; gutter: true;> | <sxh sql; gutter: true;> | ||
| - | -- Oracle | + | /* |
| + | Oracle | ||
| + | */ | ||
| SELECT | SELECT | ||
| year | year | ||
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| FROM | FROM | ||
| ex_pivot | ex_pivot | ||
| 줄 150: | 줄 161: | ||
| ; | ; | ||
| - | -- Oracle 11g 이상//Tibero 6 이상 | + | /* |
| + | Oracle 11g 이상/ | ||
| + | */ | ||
| SELECT | SELECT | ||
| * | * | ||
| 줄 160: | 줄 173: | ||
| FROM | FROM | ||
| ex_pivot | ex_pivot | ||
| - | ) PIVOT ( | ||
| - | MAX(day_cnt) | ||
| - | FOR month IN ( | ||
| - | ' | ||
| - | , ' | ||
| - | , ' | ||
| - | , ' | ||
| - | , ' | ||
| - | , ' | ||
| - | , ' | ||
| - | , ' | ||
| - | , ' | ||
| - | , ' | ||
| - | , ' | ||
| - | , ' | ||
| - | ) | ||
| ) | ) | ||
| + | PIVOT ( | ||
| + | MAX(day_cnt) | ||
| + | FOR month IN ( | ||
| + | ' | ||
| + | , ' | ||
| + | , ' | ||
| + | , ' | ||
| + | , ' | ||
| + | , ' | ||
| + | , ' | ||
| + | , ' | ||
| + | , ' | ||
| + | , ' | ||
| + | , ' | ||
| + | , ' | ||
| + | ) | ||
| + | ) | ||
| ; | ; | ||
| </ | </ | ||
| 줄 182: | 줄 196: | ||
| ===== PostgreSQL ===== | ===== PostgreSQL ===== | ||
| <sxh sql; gutter: true;> | <sxh sql; gutter: true;> | ||
| - | -- PostgreSQL 7.1 이상 | + | /* |
| + | PostgreSQL 7.1 이상 | ||
| + | */ | ||
| SELECT | SELECT | ||
| year | year | ||
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| - | , MAX(CASE WHEN month = ' | + | , MAX(CASE WHEN month = ' |
| FROM | FROM | ||
| ex_pivot | ex_pivot | ||
| 줄 203: | 줄 219: | ||
| ; | ; | ||
| </ | </ | ||
| + | |||
| + | {{tag>" | ||