본문 바로가기

query

[Oracle] MODEL SELECT YM, COL_AMT FROM ( SELECT '201401' AS YM, 10000 AS AMT FROM DUAL UNION ALL SELECT '201402' AS YM, 20000 AS AMT FROM DUAL UNION ALL SELECT '201403' AS YM, 30000 AS AMT FROM DUAL UNION ALL SELECT '201404' AS YM, 40000 AS AMT FROM DUAL UNION ALL SELECT '201405' AS YM, 50000 AS AMT FROM DUAL ) WHERE 1=1 MODEL DIMENSION BY (YM) MEASURES (AMT, COL_AMT) RULES ( COL_AMT['SUM'] = SUM(COL_AMT) [YM .. 더보기
[ORACLE] 통계 방법 1. COPYT A. LAY_OUT B. DATA -> GROUP BY SUM C. COPYT (SEQ 1-3) ( A - B ) - C [JOIN] DECODE SUM 2. FIRST_VALUE, NTH_VALUE A. LAY_OUT + UNION ALL 2 (SUM, 97%) B. GROUPING SETS ( (a, b, c), () ) SUM + UNION ALL 1 (97%) + FIRST_VALUE(d) OVER (ORDER BY a DESC) AS CALC OR NTH_VALUE(d, 1) OVER (ORDER BY a DESC) AS CALC A - B [JOIN] DECODE SUM 개인적인 생각으론, 1)을 많이 사용하였는데... COPYT 개수만큼 데이터 ROW가 생성되니... 2) 방.. 더보기
[Oracle] COPY_T 테이블 필요한가? ▶ 더미 테이블을 사용해서 장애를 만나는 경우 ▶ 더미 테이블을 사용하는 이유 ▶ 더미 테이블을 사용하지 않는 방법 포장마차에서 지인에게 재미있는 이야기를 들었다. 물론 공장 이야기 이다. 나는 이야기를 재미있게 들었지만, 지인의 입장에서는 머리가 쭈뼛쭈뼛 서는 심각한 일이었다. 사건은 2011년 겨울에 시작된다. 2011년 1월 1일 이른 아침, 갑자기 잘 돌아가던 시스템에 몇몇 프로그램들이 작동하지 않는 장애를 만났다. Y2K 버그도 아니고 2011년 1월 1일에 장애라니? 서버와 네트워크 그리고 Database는 정상이므로 관심의 화살은 개발팀으로 집중되었다. 개발팀에서 장애 프로그램을 조사해보니 지난 한 달간 프로그램 수정이 없다고 하였다. 결국 모든 것이 정상인데 프로그램만 돌아가지 않는 상황이.. 더보기
[Oracle] 11g R2 : NTH_VALUE Function NTH_VALUE Function The NTH_VALUE function enables you to find column values from an arbitrary row in the window. This could be used when, for example, you want to retrieve the 5th highest closing price for a company's shares during a year. The LAG and LEAD functions can be thought of as being related to, and a simplification of, the NTH_VALUE function. With LAG and LEAD, you can only retrieve va.. 더보기
[Oracle] 11g R2 : IGNORE_ROW_ON_DUPKEY_INDEX Hint IGNORE_ROW_ON_DUPKEY_INDEX Hint When a statement of the form INSERT INTO target subquery runs, a unique key for some rows to be inserted might collide with existing rows. Suppose that your application must ignore such collisions and insert the rows that do not collide with existing rows. Before Oracle Database 11g Release 2, you had to write a PL/SQL program which, in a block with a NULL handler.. 더보기