본문 바로가기

Paul Work/Sql

READ(), LAG() 함수 ANALYTIC 함수로, SELF JOIN 하지 않고 하나의 테이블에서 동시에 한 행(ROW) 이상을 접근 할 수 있다 이렇게 말로 써 놓으니 잘 모르겠군... [형식] LEAD(VALUE_EXPR[,OFFSET][,DEFAULT]) OVER([QUERRY_PARTITION_CLAUSE] ORDER_BY_CLAUSE) 예제 : ================================================================================================== SELECT CLASSID, AVGPOINTS, LAG(AVGPOINTS, 1) OVER (ORDER BY CLASSID) PREVAVG, LEAD(AVGPOINTS, 1) OVER (ORDER BY CLA.. 더보기
WITH절 사용하기 WITH 절 - 같은 쿼리 블럭이 두 번 이상 반복해서 사용된다면 위드 절을 이용해 가독과 편의성을 높일 수 있다. - 쿼리 블록의 결과를 추출해서 유저의 임시 테이블 스페이스에 저장한다. - 성능 향상 WITH COST_SUM AS ( SELECT A.EMP_ID, SUM(A.SALARY) AS SAL_TOT FROM EMPA ), COST_AVG AS( SELECT SUM(DEPT(TOTAL)/COUNT(*) AS DAVG FROM COST ) SELECT * FROM COST_SUM WHERE SAL_TOT > (SELECT DAVG FROM COST_AVG ) ORDER BT EMP_ID; -> 두 개의 서브 쿼리를 COST_SUM와 COST_AVG라는 테이블 처럼 사용하고 있다. WITH 별칭 .. 더보기
CONNECT BY~ 와 ORDER SIBLINGS BY ORDER SIBLINGS BY : 특정 컬럼에 대한 Order by를 실행(조회된 데이터에 대해) CONNECT BY : 상위 코드와 하위 코드를 이용하여 Tree 형태로 보여줄수 있는 것 SELECT ORG_CODE, ORG_NAME, LEVEL AS ORG_LEVEL, CONNECT_BY_ISLEAF AS LEAF_YN, DISP_RNK FROM TH_ORG START WITH ORG_CODE = '20060007' CONNECT BY PRIOR ORG_CODE = UPORG_CODE ORDER SIBLINGS BY DISP_RNK ; 붉은색 부분은 ORDER SIBLINGS BY 미적용 ====================================================== ORG_COD.. 더보기