Top 19 오라클 피벗 The 32 New Answer

You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 오라클 피벗 on Google, you do not find the information you need! Here are the best content compiled and compiled by the https://toplist.maxfit.vn team, along with other related topics such as: 오라클 피벗 오라클 피벗 in 동적, 오라클 피벗 DECODE, 오라클 피벗 조인, 오라클 행을 열로, Oracle PIVOT IN (SELECT), 오라클 피벗 집계함수, 오라클 피벗 속도, 오라클 피벗 여러개


#4 행을 열로 PIVOT (행열변환)
#4 행을 열로 PIVOT (행열변환)


[Oracle] 오라클 PIVOT(피벗) 함수 사용법 (행을 열로 변환, 피봇)

  • Article author: gent.tistory.com
  • Reviews from users: 49330 ⭐ Ratings
  • Top rated: 4.2 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [Oracle] 오라클 PIVOT(피벗) 함수 사용법 (행을 열로 변환, 피봇) 오라클 11g부터 PIVOT 기능을 제공합니다. 기존 이하버전에서는 DECODE 함수를 이용하여 로우를 컬럼으로 변경하는 작업을 하였습니다. …
  • Most searched keywords: Whether you are looking for [Oracle] 오라클 PIVOT(피벗) 함수 사용법 (행을 열로 변환, 피봇) 오라클 11g부터 PIVOT 기능을 제공합니다. 기존 이하버전에서는 DECODE 함수를 이용하여 로우를 컬럼으로 변경하는 작업을 하였습니다. 오라클 11g부터 PIVOT 기능을 제공합니다. 기존 이하버전에서는 DECODE 함수를 이용하여 로우를 컬럼으로 변경하는 작업을 하였습니다. PIVOT 기능을 이용하면 DECODE의 복잡하고 비직관적인 코드를 조금 더 직관..
  • Table of Contents:

Header Menu

Main Menu

[Oracle] 오라클 PIVOT(피벗) 함수 사용법 (행을 열로 변환 피봇)

PIVOT 사용법

DECODE 사용법 (10g 이하 버전)

사용 예제

‘데이터베이스오라클’ 관련 글

Sidebar – Right

Sidebar – Footer 1

Sidebar – Footer 2

Sidebar – Footer 3

Copyright © 젠트의 프로그래밍 세상 All Rights Reserved

Designed by JB FACTORY

[Oracle] 오라클  PIVOT(피벗) 함수 사용법 (행을 열로 변환, 피봇)
[Oracle] 오라클 PIVOT(피벗) 함수 사용법 (행을 열로 변환, 피봇)

Read More

[Oracle] 오라클 피벗(2) – PIVOT, UNPIVOT, 행을 열로, 열을 행으로

  • Article author: goddaehee.tistory.com
  • Reviews from users: 34414 ⭐ Ratings
  • Top rated: 3.5 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [Oracle] 오라클 피벗(2) – PIVOT, UNPIVOT, 행을 열로, 열을 행으로 [Oracle] 오라클 피벗(2) – PIVOT, UNPIVOT, (행을 열로, 열을 행으로). 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라플 피벗, 두번째 ] 입니다. :). …
  • Most searched keywords: Whether you are looking for [Oracle] 오라클 피벗(2) – PIVOT, UNPIVOT, 행을 열로, 열을 행으로 [Oracle] 오라클 피벗(2) – PIVOT, UNPIVOT, (행을 열로, 열을 행으로). 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라플 피벗, 두번째 ] 입니다. :). [Oracle] 오라클 피벗(2) – PIVOT, UNPIVOT, (행을 열로, 열을 행으로) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라플 피벗, 두번째 ] 입니다. 🙂  업무를 하다보면 행을 열으로 전환한다던지, 열을 행..
  • Table of Contents:

태그

관련글

댓글4

공지사항

최근글

인기글

최근댓글

태그

전체 방문자

티스토리툴바

[Oracle] 오라클 피벗(2) - PIVOT, UNPIVOT, 행을 열로, 열을 행으로
[Oracle] 오라클 피벗(2) – PIVOT, UNPIVOT, 행을 열로, 열을 행으로

Read More

Oracle PIVOT() 함수 사용

  • Article author: velog.io
  • Reviews from users: 48424 ⭐ Ratings
  • Top rated: 3.2 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Oracle PIVOT() 함수 사용 PIVOT() 함수 개요 … 위 그림 처럼 행을 열로 변환해주는 함수로 통계에 많이 사용된다고 한다. 실제로 회사에서 통계 페이지를 구성하는 쿼리에 사용되고 … …
  • Most searched keywords: Whether you are looking for Oracle PIVOT() 함수 사용 PIVOT() 함수 개요 … 위 그림 처럼 행을 열로 변환해주는 함수로 통계에 많이 사용된다고 한다. 실제로 회사에서 통계 페이지를 구성하는 쿼리에 사용되고 … 위 그림 처럼 행을 열로 변환해주는 함수로 통계에 많이 사용된다고 한다. 실제로 회사에서 통계 페이지를 구성하는 쿼리에 사용되고 있었다. 행을 열로 바꾼다는 개념이 이해가 되지 않아서 사용법을 정리한다.그룹함수는 SUM(), AVG(), COUNT() 등 컬럼을 묶어주
  • Table of Contents:

IT

PIVOT() 함수 개요

예제 쿼리

Oracle PIVOT() 함수 사용
Oracle PIVOT() 함수 사용

Read More

[오라클/SQL] PIVOT : 테이블 행렬전환, 행과 열을 전환한 피벗 테이블 만들기, 집계함수 결과를 (X,Y)에 따라 2차원으로 나타내기 : 네이버 블로그

  • Article author: blog.naver.com
  • Reviews from users: 20101 ⭐ Ratings
  • Top rated: 3.8 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [오라클/SQL] PIVOT : 테이블 행렬전환, 행과 열을 전환한 피벗 테이블 만들기, 집계함수 결과를 (X,Y)에 따라 2차원으로 나타내기 : 네이버 블로그 엑셀을 사용하다 보면 종종 ‘피벗테이블’ 이라는 용어를 들을 수 있었습니다. 마찬가지로, 오라클 SQL 에서도 PIVOT 기능을 사용하여 집계 결과를 … …
  • Most searched keywords: Whether you are looking for [오라클/SQL] PIVOT : 테이블 행렬전환, 행과 열을 전환한 피벗 테이블 만들기, 집계함수 결과를 (X,Y)에 따라 2차원으로 나타내기 : 네이버 블로그 엑셀을 사용하다 보면 종종 ‘피벗테이블’ 이라는 용어를 들을 수 있었습니다. 마찬가지로, 오라클 SQL 에서도 PIVOT 기능을 사용하여 집계 결과를 …
  • Table of Contents:

악성코드가 포함되어 있는 파일입니다

작성자 이외의 방문자에게는 이용이 제한되었습니다

[오라클/SQL] PIVOT : 테이블 행렬전환, 행과 열을 전환한 피벗 테이블 만들기, 집계함수 결과를 (X,Y)에 따라 2차원으로 나타내기 : 네이버 블로그
[오라클/SQL] PIVOT : 테이블 행렬전환, 행과 열을 전환한 피벗 테이블 만들기, 집계함수 결과를 (X,Y)에 따라 2차원으로 나타내기 : 네이버 블로그

Read More

Oracle PIVOT | 밥줄과 취미 사이 ːː 못 먹어도 고!

  • Article author: dejavuhyo.github.io
  • Reviews from users: 25459 ⭐ Ratings
  • Top rated: 3.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Oracle PIVOT | 밥줄과 취미 사이 ːː 못 먹어도 고! 1. Oracle PIVOT Oracle 11g는 행을 열로 변환하는 테이블 쿼리를 작성할 수 있는 새로운 PIVOT 절을 도입했다. 따라서 피벗 작업의 출력은 시작 … …
  • Most searched keywords: Whether you are looking for Oracle PIVOT | 밥줄과 취미 사이 ːː 못 먹어도 고! 1. Oracle PIVOT Oracle 11g는 행을 열로 변환하는 테이블 쿼리를 작성할 수 있는 새로운 PIVOT 절을 도입했다. 따라서 피벗 작업의 출력은 시작 … 1. Oracle PIVOT Oracle 11g는 행을 열로 변환하는 테이블 쿼리를 작성할 수 있는 새로운 PIVOT 절을 도입했다. 따라서 피벗 작업의 출력은 시작 데이터 세트보다 더 많은 열과 더 적은 행을 반환한다.
  • Table of Contents:

1 Oracle PIVOT

2 PIVOT 예제

3 PIVOT 열 별칭 지정

4 여러 열 PIVOT

5 PIVOT with 하위 쿼리

[출처 및 참고]
Oracle PIVOT | 밥줄과 취미 사이 ːː 못 먹어도 고!
Oracle PIVOT | 밥줄과 취미 사이 ːː 못 먹어도 고!

Read More

오라클(Oracle) 피봇(Pivot) 사용 방법: 그룹핑 개념으로

  • Article author: wookoa.tistory.com
  • Reviews from users: 9266 ⭐ Ratings
  • Top rated: 4.3 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 오라클(Oracle) 피봇(Pivot) 사용 방법: 그룹핑 개념으로 머리말 오라클 함수인 Pivot 및 Unpivot 기능은 Oracle 11g 버전부터 제공하는 강력한 함수이다. 피봇 함수가 지원되기 이전에는 decode, … …
  • Most searched keywords: Whether you are looking for 오라클(Oracle) 피봇(Pivot) 사용 방법: 그룹핑 개념으로 머리말 오라클 함수인 Pivot 및 Unpivot 기능은 Oracle 11g 버전부터 제공하는 강력한 함수이다. 피봇 함수가 지원되기 이전에는 decode, … 머리말 오라클 함수인 Pivot 및 Unpivot 기능은 Oracle 11g 버전부터 제공하는 강력한 함수이다. 피봇 함수가 지원되기 이전에는 decode, case문을 이용해서 행과 열을 뒤집어야 했지만, 피봇 함수가 지원되면..
  • Table of Contents:
오라클(Oracle) 피봇(Pivot) 사용 방법: 그룹핑 개념으로
오라클(Oracle) 피봇(Pivot) 사용 방법: 그룹핑 개념으로

Read More

[SQL] 피봇에 대해 알아보자 (feat. PIVOT, UNPIVOT)

  • Article author: wyatt37.tistory.com
  • Reviews from users: 40939 ⭐ Ratings
  • Top rated: 3.9 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [SQL] 피봇에 대해 알아보자 (feat. PIVOT, UNPIVOT) PIVOT(Oracle, SQL Server Only). 피봇 연산자는 행으로 나열되어 있는 데이터를 열로 나열하여 보기 쉽게 가공하는 것입니다. …
  • Most searched keywords: Whether you are looking for [SQL] 피봇에 대해 알아보자 (feat. PIVOT, UNPIVOT) PIVOT(Oracle, SQL Server Only). 피봇 연산자는 행으로 나열되어 있는 데이터를 열로 나열하여 보기 쉽게 가공하는 것입니다. 안녕하세요, 끙정입니다. 오늘은 피봇에 대해서 알아보겠습니다. 1. PIVOT(Oracle, SQL Server Only) 피봇 연산자는 행으로 나열되어 있는 데이터를 열로 나열하여 보기 쉽게 가공하는 것입니다. 시간순으로 차곡..AI/ML/DX까지 기술의 넓은 영역을 연구합니다 🙂
  • Table of Contents:
[SQL] 피봇에 대해 알아보자 (feat. PIVOT, UNPIVOT)
[SQL] 피봇에 대해 알아보자 (feat. PIVOT, UNPIVOT)

Read More

코끼리를 냉장고에 넣는 방법 :: [Oracle] 오라클 행을 열로 바꾸는 PIVOT 사용법 및 설명 및 PIVOT 대체하기

  • Article author: dololak.tistory.com
  • Reviews from users: 25164 ⭐ Ratings
  • Top rated: 3.0 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 코끼리를 냉장고에 넣는 방법 :: [Oracle] 오라클 행을 열로 바꾸는 PIVOT 사용법 및 설명 및 PIVOT 대체하기 먼저 PIVOT이 없다는 가정하에 두가지 정도 방법이 있을 것 같습니다. 첫번째로는 서브쿼리에서 DECODE 함수나 CASE 문을 통해 부서별 직책별 합계를 … …
  • Most searched keywords: Whether you are looking for 코끼리를 냉장고에 넣는 방법 :: [Oracle] 오라클 행을 열로 바꾸는 PIVOT 사용법 및 설명 및 PIVOT 대체하기 먼저 PIVOT이 없다는 가정하에 두가지 정도 방법이 있을 것 같습니다. 첫번째로는 서브쿼리에서 DECODE 함수나 CASE 문을 통해 부서별 직책별 합계를 … 오라클 행을 열로 바꾸는 PIVOT 사용법 및 설명 및 PIVOT 대체하기 오라클에서 PIVOT을 사용하면 세로로 출력되는 형식의 데이터를 가로로 뒤집어 출력할 수 있습니다. 부서별 직책별 평균 급여 구하기 오라클 사..
  • Table of Contents:
코끼리를 냉장고에 넣는 방법 :: [Oracle] 오라클 행을 열로 바꾸는 PIVOT 사용법 및 설명 및 PIVOT 대체하기
코끼리를 냉장고에 넣는 방법 :: [Oracle] 오라클 행을 열로 바꾸는 PIVOT 사용법 및 설명 및 PIVOT 대체하기

Read More

[Oracle] PIVOT 함수 사용법 (행을 열로 변환) :: 콩다코딩

  • Article author: kongda.tistory.com
  • Reviews from users: 10135 ⭐ Ratings
  • Top rated: 3.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [Oracle] PIVOT 함수 사용법 (행을 열로 변환) :: 콩다코딩 오라클 PIVOT(피벗) 함수 사용법 _ 행을 열로 변환하기. 개발을 하다보면 세로로 조회된 데이터를 가로로 변환해야하는 상황이 발생한다. …
  • Most searched keywords: Whether you are looking for [Oracle] PIVOT 함수 사용법 (행을 열로 변환) :: 콩다코딩 오라클 PIVOT(피벗) 함수 사용법 _ 행을 열로 변환하기. 개발을 하다보면 세로로 조회된 데이터를 가로로 변환해야하는 상황이 발생한다. 오라클 PIVOT(피벗) 함수 사용법 _ 행을 열로 변환하기 개발을 하다보면 세로로 조회된 데이터를 가로로 변환해야하는 상황이 발생한다. 이때 보통 DECODE나 CASE문을 사용하여 변환을 하였을 것이다. 하지만, 오..
  • Table of Contents:

TAG

관련글 관련글 더보기

인기포스트

티스토리툴바

[Oracle] PIVOT 함수 사용법 (행을 열로 변환) :: 콩다코딩
[Oracle] PIVOT 함수 사용법 (행을 열로 변환) :: 콩다코딩

Read More

[Oracle] PIVOT, UNPIVOT 함수 사용 행열 전환 :: 마이자몽

  • Article author: myjamong.tistory.com
  • Reviews from users: 9578 ⭐ Ratings
  • Top rated: 3.2 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [Oracle] PIVOT, UNPIVOT 함수 사용 행열 전환 :: 마이자몽 행열 전환 ORACLE SCOTT 계정 EMP 테이블에서 2개의 칼럼을 이용하여 GROUP BY 결과를 확인해봤습니다. 하고 싶은 작업은 GROUPING한 칼럼을 가로 … …
  • Most searched keywords: Whether you are looking for [Oracle] PIVOT, UNPIVOT 함수 사용 행열 전환 :: 마이자몽 행열 전환 ORACLE SCOTT 계정 EMP 테이블에서 2개의 칼럼을 이용하여 GROUP BY 결과를 확인해봤습니다. 하고 싶은 작업은 GROUPING한 칼럼을 가로 … 행열 전환 ORACLE SCOTT 계정 EMP 테이블에서 2개의 칼럼을 이용하여 GROUP BY 결과를 확인해봤습니다. 하고 싶은 작업은 GROUPING한 칼럼을 가로 세로축으로 두고 데이터를 출력하려고 합니다. CASE 표현식이나..
  • Table of Contents:

행열 전환

PIVOT 사용

UNPIVOT 사용

PIVOT 사용시 주의사항

태그

관련글

댓글0

최근글

인기글

티스토리툴바

[Oracle] PIVOT, UNPIVOT 함수 사용 행열 전환 :: 마이자몽
[Oracle] PIVOT, UNPIVOT 함수 사용 행열 전환 :: 마이자몽

Read More


See more articles in the same category here: toplist.maxfit.vn/blog.

[Oracle] 오라클 PIVOT(피벗) 함수 사용법 (행을 열로 변환, 피봇)

오라클 11g부터 PIVOT 기능을 제공합니다.

기존 이하버전에서는 DECODE 함수를 이용하여 로우를 컬럼으로 변경하는 작업을 하였습니다.

PIVOT 기능을 이용하면 DECODE의 복잡하고 비직관적인 코드를 조금 더 직관적으로 작성할 수 있습니다.

아쉬운 접은 PIVOT 기능을 사용하더라도 PIVOT을 할 컬럼을 미리 정의를 해 놓아야 한다는 점이다.

상황에 맞게 PIVOT를 사용할지 DECODE를 사용할지 결정해서 사용하면 될꺼 같습니다.

오라클 PIVOT

SELECT *

FROM ( 피벗 대상 쿼리문 )

PIVOT ( 그룹합수(집계컬럼) FOR 피벗컬럼 IN (피벗컬럼값 AS 별칭 … )

PIVOT 사용법

직군별, 월별 입사 건수

SELECT * FROM ( SELECT job , TO_CHAR(hiredate, ‘FMMM’) || ‘월’ hire_month FROM emp ) PIVOT ( COUNT(*) FOR hire_month IN (‘1월’, ‘2월’, ‘3월’, ‘4월’, ‘5월’, ‘6월’, ‘7월’, ‘8월’, ‘9월’, ’10월’, ’11월’, ’12월’) )

피벗 컬럼 값(1월, 2월, 3월 …)은 한번 지정하면 해당 값이 존재하지 않아도 해당 컬럼이 표시된다.

기본적인 방법으로 피벗 컬럼 값을 동적으로 바꿀 수는 없다. 해당 값을 동적으로 바꾸기 위해서는 동적 쿼리 등 다른 편법을 사용해야 한다.

TO_CHAR(‘2020-09-16’, ‘MM’) → ’09’

TO_CHAR(‘2020-09-16’, ‘FMMM’) → ‘9’

직군별, 부서코드별 급여 합계 (피벗컬럼 별칭 사용)

SELECT job , d1 , d2 , d3 FROM ( SELECT job , deptno , sal FROM emp ) PIVOT ( SUM(sal) FOR deptno IN (’10’ AS d1, ’20’ AS d2, ’30’ AS d3) )

피벗 컬럼 값에 별칭(d1, d2, d3 …)을 지정하면 SELECT 절에서 해당 별칭을 컬럼처럼 사용할 수 있다.

DECODE 사용법 (10g 이하 버전)

직군별, 월별 입사 건수

SELECT job , SUM(DECODE(TO_CHAR(hiredate, ‘FMMM’), ‘1’, 1, 0)) “1월” , SUM(DECODE(TO_CHAR(hiredate, ‘FMMM’), ‘2’, 1, 0)) “2월” , SUM(DECODE(TO_CHAR(hiredate, ‘FMMM’), ‘3’, 1, 0)) “3월” , SUM(DECODE(TO_CHAR(hiredate, ‘FMMM’), ‘4’, 1, 0)) “4월” , SUM(DECODE(TO_CHAR(hiredate, ‘FMMM’), ‘5’, 1, 0)) “5월” , SUM(DECODE(TO_CHAR(hiredate, ‘FMMM’), ‘6’, 1, 0)) “6월” , SUM(DECODE(TO_CHAR(hiredate, ‘FMMM’), ‘7’, 1, 0)) “7월” , SUM(DECODE(TO_CHAR(hiredate, ‘FMMM’), ‘8’, 1, 0)) “8월” , SUM(DECODE(TO_CHAR(hiredate, ‘FMMM’), ‘9’, 1, 0)) “9월” , SUM(DECODE(TO_CHAR(hiredate, ‘FMMM’), ’10’, 1, 0)) “10월” , SUM(DECODE(TO_CHAR(hiredate, ‘FMMM’), ’11’, 1, 0)) “11월” , SUM(DECODE(TO_CHAR(hiredate, ‘FMMM’), ’12’, 1, 0)) “12월” FROM emp GROUP BY job

오라클 10g 이하 버전에서는 PIVOT 함수를 사용할 수 없으므로 DECODE 함수를 사용하여 행을 열로 변환이 가능하다.

사용 예제

사용_예제_쿼리.txt 다운로드

[Oracle] 오라클 피벗(2) – PIVOT, UNPIVOT, 행을 열로, 열을 행으로

반응형

[Oracle] 오라클 피벗(2) – PIVOT, UNPIVOT, (행을 열로, 열을 행으로)

안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라플 피벗, 두번째 ] 입니다. 🙂

업무를 하다보면 행을 열으로 전환한다던지, 열을 행으로 전환해야하는 업무가 간혹 발생한다.

이때 보통 decode 또는 case when을 통해 행 => 열 전환을 하였을 것이다.

이를 편하게 해결 할 수 있는 기능이 Oracle 11g부터 제공 된다.

PIVOT

– 행을 열로 변환할 때 사용하는 방법으로 기존 GROUP BY 와 집계함수(MAX, SUM 등), DECODE를 사용하는 방법을 대체한다. 코드가 매우 간결 해진다.

– PIVOT 절은 GROUP Function 을 포함한 계산식을 정의 하며 FOR 절은 값을 구분할 (DECODE 사용시 조건식이 정의될) 컬럼명과 IN 으로 값을 정의한다. 이때 IN 연산자는 Subquery 는 포함 할 수 없다. Alias 정의도 가능하다.

UNPIVOT

– PIVOT 의 반대 개념으로 열을 행으로 변환할 때 사용하는 방법으로 기존 복제용 집합과의 CROSS JOIN 을 통한 행복제 방법과 DECODE 를 조합하는 방법을 대체합니다.

다음과 같은 예제를 보며 이해 하도록 하자.

( Pivot은 글로만 보면 잘 이해가 안된다. 자주 사용하지 않기 때문에 긁어서 직접 실행해봐야 이해하기 쉽다.!!)

▶ 1. DECODE와 집계함수를 이용한 피벗

WITH TEMP_TABLE AS ( SELECT (TO_DATE(‘20160101′,’YYYYMMDD’) + LEVEL-1) DTE FROM DUAL CONNECT BY LEVEL-1 <= TO_DATE('20171231','YYYYMMDD') - TO_DATE('20160101','YYYYMMDD') ) SELECT TO_CHAR(DTE, 'YY') || '년' YEAR , SUM(DECODE(TO_CHAR(DTE, 'MM'),'01', 1, 0)) AS "1월" , SUM(DECODE(TO_CHAR(DTE, 'MM'),'02', 1, 0)) AS "2월" , SUM(DECODE(TO_CHAR(DTE, 'MM'),'03', 1, 0)) AS "3월" , SUM(DECODE(TO_CHAR(DTE, 'MM'),'04', 1, 0)) AS "4월" , SUM(DECODE(TO_CHAR(DTE, 'MM'),'05', 1, 0)) AS "5월" , SUM(DECODE(TO_CHAR(DTE, 'MM'),'06', 1, 0)) AS "6월" , SUM(DECODE(TO_CHAR(DTE, 'MM'),'07', 1, 0)) AS "7월" , SUM(DECODE(TO_CHAR(DTE, 'MM'),'08', 1, 0)) AS "8월" , SUM(DECODE(TO_CHAR(DTE, 'MM'),'09', 1, 0)) AS "9월" , SUM(DECODE(TO_CHAR(DTE, 'MM'),'10', 1, 0)) AS "10월" , SUM(DECODE(TO_CHAR(DTE, 'MM'),'11', 1, 0)) AS "11월" , SUM(DECODE(TO_CHAR(DTE, 'MM'),'12', 1, 0)) AS "12월" FROM TEMP_TABLE GROUP BY TO_CHAR(DTE, 'YY') ORDER BY YEAR ; ▶ 2. PIVOT 함수를 이용 WITH TEMP_TABLE AS ( SELECT (TO_DATE('20160101','YYYYMMDD') + LEVEL-1) DTE FROM DUAL CONNECT BY LEVEL-1 <= TO_DATE('20171231','YYYYMMDD') - TO_DATE('20160101','YYYYMMDD') ) SELECT * FROM ( SELECT TO_CHAR(DTE, 'YY') || '년' YEAR , DECODE (TO_CHAR(DTE, 'MM'), '01', '1월', '02', '2월', '03', '3월', '04', '4월', '05', '5월', '06', '6월', '07', '7월', '08', '8월', '09', '9월', '10', '10월', '11', '11월', '12', '12월') AS MON , DTE FROM TEMP_TABLE ) PIVOT ( COUNT (DTE) FOR MON IN ('1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월') ) ORDER BY YEAR ; ▶ 3. UNPIVOT 함수를 위한 쉬운 예제 ex) 기본 데이터 (월, 성명) - 3.1 PIVOT (행 => 열)

WITH TEMP_LOGIN_HIS AS ( SELECT ‘1월’ 월, ‘갓댐’ 성명 FROM DUAL UNION ALL SELECT ‘1월’ 월, ‘홍길동’ 성명 FROM DUAL UNION ALL SELECT ‘1월’ 월, ‘갓댐’ 성명 FROM DUAL UNION ALL SELECT ‘2월’ 월, ‘갓댐’ 성명 FROM DUAL UNION ALL SELECT ‘2월’ 월, ‘홍길동’ 성명 FROM DUAL ) SELECT * FROM TEMP_LOGIN_HIS PIVOT ( COUNT(월) FOR 월 IN (‘1월’, ‘2월’) );

– 3.2 UNPIVOT (열 => 행)

WITH TEMP_LOGIN_HIS AS ( SELECT ‘갓댐’ 성명, ‘2’ 일월, ‘1’ 이월 FROM DUAL UNION ALL SELECT ‘홍길동’ 성명, ‘1’ 일월, ‘1’ 이월 FROM DUAL ) SELECT * FROM TEMP_LOGIN_HIS UNPIVOT ( 횟수 FOR 월 IN (일월, 이월) );

관련글

2017/07/26 – [4. Database/4_3 Oracle 기본] – [Oracle] 오라클 피벗(1) – LISTAGG, WM_CONCAT

반응형

Oracle PIVOT() 함수 사용

PIVOT() 함수 개요

위 그림 처럼 행을 열로 변환해주는 함수로 통계에 많이 사용된다고 한다. 실제로 회사에서 통계 페이지를 구성하는 쿼리에 사용되고 있었다. 행을 열로 바꾼다는 개념이 이해가 되지 않아서 사용법을 정리한다.

SELECT * FROM (피벗 할 쿼리문) PIVOT( 그룹함수(칼럼) FOR 피벗 할 칼럼 IN (항목1, 항목2, 항목3 …) );

그룹함수는 SUM(), AVG(), COUNT() 등 컬럼을 묶어주는 함수들을 사용한다. 회사에서는 대부분 스킬별 통화 시간을 계산하는 용도로 사용되었기 때문에 SUM()이 사용된 쿼리문이 많았다.

신기하다고 생각했던건 SELECT * FROM (쿼리문) 의 형태로 내부에 서브쿼리를 작성하는 형태가 아니면 오류를 전달했다. 왜 바로 pivot 할 쿼리문을 전달할 수 없도록 만들었는지는 모르겠다.

굳이 추측하자면 pivot을 할 칼럼외 남은 행 또한 기준의 역할을 해서 아닐까 생각한다.

FOR 피벗 할 칼럼 IN (항목1, 항목2, 항목3 …)

부분에서 항목값은 수동으로 넣어주어야 한다. 만약 테이블에 항목 값이 없는 경우는 NULL이 나온다.

예제 쿼리

오라클 EMP 스크립트로 테이블을 만들고 예제 쿼리를 만들어 보았다.

SELECT * FROM (SELECT job, deptno , sal FROM emp ) PIVOT( SUM(sal) FOR deptno IN (’10’, ’20’, ’30’) )

맨처음 그림처럼 deptno와 job 별 sal의 합계를 출력한다. 만약에 deptno에 40을 추가하면

값이 없어 아래에는 모두 NULL이 표시되지만 컬럼에 표시는 된다. (값이 없더라도 쿼리에 적은 컬럼은 무조건 표시된다는 의미 )

PIVOT() 여러 칼럼 수행

PIVOT을 할때 한번에 여러 칼럼을 출력하는 것도 가능하다.

위에 쿼리문은 job별, deptno별 sal의 합을 출력해 주었는데 SAL의 평균도 같이 출력할수 있다.

SELECT * FROM (SELECT job, deptno , sal FROM emp ) PIVOT( SUM(sal) AS 합계, AVG(sal) AS 평균 FOR deptno IN (’10’, ’20’, ’30’, ’40’) )

이런 식으로 그룹함수를 여러개 작성하면 PIVOT을 여러 칼럼으로 만들수 있다. 이떄 반드시 AS를 사용하여 별칭을 정해 주어야 한다. (별칭이 없으면 칼럼이 구분되지 않음으로)

SELECT * FROM (SELECT job, deptno , sal, ename FROM emp ) PIVOT( SUM(sal) AS 합계, MAX(ename) AS 최고연봉 FOR deptno IN (’10’, ’20’, ’30’) )

칼럼을 하나만 하는게 아니라 여러개를 사용하는 PIVOT도 만들수 있다. 아래 쿼리는 job별 , deptno 별 sal의 합계와 누가 sal을 가장 많이 받는지 출력하는 쿼리문이다.

익숙해지려면 시간이 필요할듯…

So you have finished reading the 오라클 피벗 topic article, if you find this article useful, please share it. Thank you very much. See more: 오라클 피벗 in 동적, 오라클 피벗 DECODE, 오라클 피벗 조인, 오라클 행을 열로, Oracle PIVOT IN (SELECT), 오라클 피벗 집계함수, 오라클 피벗 속도, 오라클 피벗 여러개

Leave a Comment