본문 바로가기

Paul Work/Sql

피벗 함수(11g 이상) 및 피벗 기능(10g 이하) 세로로 나오는 값을 가로로 정리해주는 SQL SELECT COLUMN_NAME, DATA_LENGTH, MIN(CASE WHEN NO=1 THEN TABLE_NAME END)|| MIN(CASE WHEN NO=2 THEN ','||TABLE_NAME END)|| MIN(CASE WHEN NO=3 THEN ','||TABLE_NAME END) AS TABLES FROM ( SELECT COLUMN_NAME, DATA_LENGTH, TABLE_NAME, ROW_NUMBER() OVER( PARTITION BY COLUMN_NAME, DATA_LENGTH ORDER BY TABLE_NAME) AS NO FROM ALL_TAB_COLUMNS WHERE OWNER = 'BASE' ) GROUP BY COLUMN_.. 더보기
세로 데이터를 가로로 변환 해주는 function 세로 DATA를 가로로 변환 해주는 방법을 function을 통해 잘 정리해준 내용일 있어 스크랩을 해왔음참고 : http://amnesis.tistory.com/4 GBNVALA001A002A003A004A005A011B007B004B005B010C011C001C002C003 이런 내용이 있을때 gbn으로 그룹핑을 하고 val의 내용을 하나의 컬럼으로 받고 싶다고 해보자 예를 들어 GBNVALA001,002,003,004,005,011B004,005,007,010C001,002,003,011이런식으로..^^ 대부분의 경우 역시 프로그램에서 해결하거나, decode 구분에 rownum이나 rank등을 사용하여 처리 했을 것이다. 하지만 프로그램에서 처리 할 경우는 디비에서 보다 느려지게되고, decode.. 더보기
Oracle Over 사용법 모음 자주 사용 하는데 가끔 어떻게 사용되는지 헛갈릴때가 있어서 해당 내용을 다시 올려본다. COUNT(*) OVER () : 전체행 카운트 COUNT(*) OVER (PARTITION BY 컬럼) : 그룹단위로 나누어 카운트 MAX(컬럼) OVER() : 전체행 중에 최고값 MAX(컬럼) OVER(PARTITION BY 컬럼) : 그룹내 최고값 MIN(컬럼) OVER () : 전체행 중에 최소값 MIN(컬럼) OVER (PARTITION BY 컬럼) : 그룹내 최소값 SUM(컬럼) OVER () : 전체행 합 SUM(컬럼) OVER (PARTITION BY 컬럼) : 그룹내 합 AVG(컬럼) OVER () : 전체행 평균 AVG(컬럼) OVER (PARTITION BY 컬럼) : 그룹내 평균 STDDEV(컬.. 더보기