1HOON
논리적 코딩
1HOON
전체 방문자
오늘
어제
  • HOME (187)
    • ☕️ JAVA (28)
      • WhiteShip Java LIVE Study (6)
      • Effective JAVA (10)
    • 🔮 KOTLIN (4)
    • 🌱 SPRING (51)
      • 스프링 인 액션 (22)
      • JPA (18)
    • ☕️ JAVASCRIPT (6)
    • 📃 DATABASE (40)
      • ORACLE (37)
      • MSSQL (2)
    • 🐧 LINUX (4)
    • 🐳 DOCKER (5)
    • 🐙 KUBERNETES (4)
    • 🏗️ ARCHITECTURE (8)
    • 📦 ETC (27)
      • TOY PROJECT (5)
      • RECRUIT (1)
      • 그냥 쓰고 싶어서요 (14)
      • TIL (1)
    • 🤿 DEEP DIVE (1)
    • 🚽 Deprecated (9)
      • PYTHON (3)
      • AWS (2)
      • HTTP 완벽가이드 (3)
      • WEB (1)

블로그 메뉴

  • 홈
  • 방명록
  • 관리

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
1HOON

논리적 코딩

[SQL] WINDOW 함수
📃 DATABASE/ORACLE

[SQL] WINDOW 함수

2018. 1. 16. 22:22

WINDOW 함수

행과 행간의 관계를 쉽게 정의하기 위해 만든 함수

AVG, CORR, COUNT, FIRST_VALUE, LAST_VALUE, MAX, MIN, NTH_VALUE, STDDEV, SUM, VARIANCE 등 함수와 사용가능


FIRST_VALUE(EXPR)

파티션별 윈도우에서 가장 먼저 나온 값을 구한다.

1
2
3
4
5
6
7
8
9
SELECT  DEPARTMENT_ID, EMP_NAME, HIRE_DATE, SALARY
        , FIRST_VALUE(SALARY) OVER (PARTITION BY DEPARTMENT_ID ORDER BY HIRE_DATE
                                    ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS ALL_SALARY
        , FIRST_VALUE(SALARY) OVER (PARTITION BY DEPARTMENT_ID ORDER BY HIRE_DATE
                                    ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS FR_ST_TO_CURRENT_SAL
        , FIRST_VALUE(SALARY) OVER (PARTITION BY DEPARTMENT_ID ORDER BY HIRE_DATE
                                    ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS FR_CURRENT_TO_END_SAL
FROM    EMPLOYEES
WHERE   DEPARTMENT_ID IN (30, 90);
Colored by Color Scripter
cs



LAST_VALUE(EXPR)

파티션별 윈도우에서 가장 나중에 나온 값을 구한다.

1
2
3
4
5
6
7
8
9
SELECT  DEPARTMENT_ID, EMP_NAME, HIRE_DATE, SALARY
        , LAST_VALUE(SALARY) OVER (PARTITION BY DEPARTMENT_ID ORDER BY HIRE_DATE
                                    ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS ALL_SALARY
        , LAST_VALUE(SALARY) OVER (PARTITION BY DEPARTMENT_ID ORDER BY HIRE_DATE
                                    ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS FR_ST_TO_CURRENT_SAL
        , LAST_VALUE(SALARY) OVER (PARTITION BY DEPARTMENT_ID ORDER BY HIRE_DATE
                                    ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS FR_CURRENT_TO_END_SAL
FROM    EMPLOYEES
WHERE   DEPARTMENT_ID IN (30, 90);
Colored by Color Scripter
cs



NTH_VALUE(MEASURE_EXPR, N)

주어진 그룹에서 N번째 로우에 해당하는 MEASURE_EXPR 값을 반환한다.

1
2
3
4
5
6
7
8
9
SELECT  DEPARTMENT_ID, EMP_NAME, HIRE_DATE, SALARY
        , NTH_VALUE(SALARY, 2) OVER (PARTITION BY DEPARTMENT_ID ORDER BY HIRE_DATE
                                    ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS ALL_SALARY
        , NTH_VALUE(SALARY, 2) OVER (PARTITION BY DEPARTMENT_ID ORDER BY HIRE_DATE
                                    ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS FR_ST_TO_CURRENT_SAL
        , NTH_VALUE(SALARY, 2) OVER (PARTITION BY DEPARTMENT_ID ORDER BY HIRE_DATE
                                    ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS FR_CURRENT_TO_END_SAL
FROM    EMPLOYEES
WHERE   DEPARTMENT_ID IN (30, 90);
Colored by Color Scripter
cs



반응형
저작자표시 비영리 변경금지 (새창열림)

'📃 DATABASE > ORACLE' 카테고리의 다른 글

[PL/SQL] PL/SQL 기초  (0) 2018.01.17
[SQL] 다중 테이블 INSERT  (1) 2018.01.16
[SQL] 분석 함수  (1) 2018.01.15
[SQL] WITH절과 순환 서브쿼리  (1) 2018.01.15
[SQL] 계층형 쿼리  (0) 2018.01.09
    '📃 DATABASE/ORACLE' 카테고리의 다른 글
    • [PL/SQL] PL/SQL 기초
    • [SQL] 다중 테이블 INSERT
    • [SQL] 분석 함수
    • [SQL] WITH절과 순환 서브쿼리
    1HOON
    1HOON

    티스토리툴바