[Oracle] 데이터 분석 - 비율 출력 (RATIO_TO_REPORT)
데이터 분석 - 비율 출력 (RATIO_TO_REPORT : 특정 컬럼의 데이터 합계를 기준으로 각 로우의 상대적 비율을 구함 SELECT column1, column2, column3, RATIO_TO_REPORT(column3) OVER() as nickname FROM tablename WHERE column4=100; : column4가 100일 경우, column1, column2, column3와 100일 경우 내에서 column3의 비율을 출력 SELECT column1, column2, column3, RATIO_TO_REPORT(column3) OVER() as 비율, SAL/SUM(column3) OVER() as 비교비율 FROM tablename WHERE column4=100; :..
2020. 9. 10.
[Oracle] COLUMN을 ROW로 출력 (PIVOT)
COLUMN을 ROW로 출력 (PIVOT) : ROW(행)를 COLUMN으로 출력 - SUM+DECODE 보다 간단함 - FROM절을 반드시 특정 컬럼만 선택해야함 SELECT * FROM (SELECT column1, column2, FROM tablename) PIVOT (SUM(column2) FOR column1 IN(100,200,300)); : column1, column1별 column2합계를 가로 출력 - FROM절 : column1, column2 중에서 - PIVOT절 : column1이 100,200,300 인 경우(COLUMN명), column2의 합계(COLUMN값=행)를 가로로 출력 SELECT * FROM(SELECT colum1, column2 FROM tablename) P..
2020. 9. 9.
[Oracle] COLUMN을 ROW로 출력 (SUM+DECODE)
COLUMN을 ROW로 출력 (SUM+DECODE) : ROW(행)를 COLUMN으로 출력 SELECT SUM(DECODE(column1, 100, column2)) as "100", SUM(DECODE(column1, 200, column2)) as "200", SUM(DECODE(column1, 300, column2)) as "300" FROM tablename; : column1, column1별 합계 column2를 가로로 출력 SELECT column1, DECODE(column1, 100, column2) as "100" FROM tablename; : column1이 100이면 column2를 출력, column1이 100이 아니면 NULL 출력 SELECT SUM(DECODE(column..
2020. 9. 9.
[Oracle] 데이터 분석 - 순위의 비율 출력 (CUME_DIST)
데이터 분석 - 순위의 비율 출력 (CUME_DIST) : 특정 데이터 순위의 비율 출력 SELECT column1, column2, RANK() OVER (ORDER BY column2 DESC) as RANK DENSE_RANK() OVER (ORDER BY column2 DESC) as DENSE_RANK CUME_DIST() OVER (ORDER BY column2 DESC) as CUME_DIST FROM tablename; : 같은 등수가 있을 경우 마지막 등수로 계산함. ex: 1,2,3,3,5,6,7,7,7,10 = 1등 1: 1/10 = 2등 1: 2/10 = 3등 2: 4/10 = 5등 1: 5/10 = 6등 1: 6/10 = 7등 3: 9/10 SELECT column1, column..
2020. 9. 8.