복붙노트

[SQL] 오라클에서 OVER 절

SQL

오라클에서 OVER 절

오라클의 OVER 절의 의미는 무엇입니까?

해결법

  1. ==============================

    1.오버 절은 분석 기능이 동작 "하는 동안"파티션, 주문 및 창을 지정합니다.

    오버 절은 분석 기능이 동작 "하는 동안"파티션, 주문 및 창을 지정합니다.

    예를 들어, 이것은 이동 평균 계산 :

    AVG(amt) OVER (ORDER BY date ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)
    
    date   amt   avg_amt
    =====  ====  =======
    1-Jan  10.0  10.5
    2-Jan  11.0  17.0
    3-Jan  30.0  17.0
    4-Jan  10.0  18.0
    5-Jan  14.0  12.0
    

    이 날짜별로 정렬 된 행 이상 (3 행 폭) 이동 창을 통해 운영하고 있습니다.

    이것은 실행 균형을 계산합니다 :

    SUM(amt) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
    
    date   amt   sum_amt
    =====  ====  =======
    1-Jan  10.0  10.0
    2-Jan  11.0  21.0
    3-Jan  30.0  51.0
    4-Jan  10.0  61.0
    5-Jan  14.0  75.0
    

    그것은 현재 행과 이전의 모든 행을 포함하는 창에서 동작한다.

    이것은 각 "부서"에 대해 개별적으로, 최대 값을 계산합니다 :

    MAX(amt) OVER (PARTITION BY dept)
    
    dept  amt   max_amt
    ====  ====  =======
    ACCT   5.0   7.0
    ACCT   7.0   7.0
    ACCT   6.0   7.0
    MRKT  10.0  11.0
    MRKT  11.0  11.0
    SLES   2.0   2.0
    

    그것은 특정 부서의 모든 행을 포함하는 창에서 동작한다.

    SQL 바이올린 : http://sqlfiddle.com/#!4/9eecb7d/122

  2. ==============================

    2.당신은 분석에 일부 집계 함수를 변환하는 데 사용할 수 있습니다 :

    당신은 분석에 일부 집계 함수를 변환하는 데 사용할 수 있습니다 :

    SELECT  MAX(date)
    FROM    mytable
    

    단일 최대 1 개 행을 반환합니다

    SELECT  MAX(date) OVER (ORDER BY id)
    FROM    mytable
    

    실행중인 최대 모든 행을 반환합니다.

  3. ==============================

    3.그것은 오라클 분석 기능의 일부입니다.

    그것은 오라클 분석 기능의 일부입니다.

  4. from https://stackoverflow.com/questions/1092120/over-clause-in-oracle by cc-by-sa and MIT license