INTERVAL 값 집계

2023. 4. 14.·Oracle/SQL

Oracle 23c부터 INTERVAL 값에 SUM 함수와 AVG 함수를 사용할 수 있습니다.

You can pass INTERVAL datatypes to the SUM and AVG aggregate and analytic functions. This enhancement makes it easier for developers to calculate totals and averages over INTERVAL values.

 

테스트를 위해 아래와 같이 테이블을 생성하겠습니다.

-- 1
DROP TABLE t1 PURGE;
CREATE TABLE t1 (c1 INTERVAL DAY TO SECOND, c2 INTERVAL DAY TO SECOND);

INSERT INTO t1 VALUES (INTERVAL '1' DAY, INTERVAL '1' HOUR);
INSERT INTO t1 VALUES (INTERVAL '2' DAY, INTERVAL '2' HOUR);
COMMIT;

 

아래 쿼리는 INTERVAL 값에 SUM 함수를 사용니다. 23.2 버전은 결과가 반환되지만 19.3 버전은 에러가 발생합니다.

-- 2-1: 23.2
SELECT SUM (c1) AS c1, SUM (c2) AS c2 FROM t1;

C1                            C2
----------------------------- -----------------------------
+000000003 00:00:00.000000000 +000000000 03:00:00.000000000

1개의 행이 선택되었습니다.

-- 2-2: 19.3
SELECT SUM (c1) AS c1, SUM (c2) AS c2 FROM t1;

ORA-00932: 일관성 없는 데이터 유형: NUMBER이(가) 필요하지만 INTERVAL DAY TO SECOND임

 

아래 쿼리는 INTERVAL 값에 AVG 함수를 사용니다. 

-- 3
SELECT AVG (c1) AS c1, AVG (c2) AS c2 FROM t1;

C1                            C2
----------------------------- -----------------------------
+000000001 12:00:00.000000000 +000000000 01:30:00.000000000

1개의 행이 선택되었습니다.
저작자표시 비영리 변경금지 (새창열림)
'Oracle/SQL' 카테고리의 다른 글
  • GROUP BY 절과 HAVING 절 표현식 개선
  • 날짜 값에 CEIL, FLOOR 함수 사용
  • IF [NOT] EXISTS 절
  • UPDATE 문, DELETE 문에 대한 직접 조인
정희락
정희락
2007년부터 Oracle Database 성능 최적화에 주력해 왔으며, 현재 한국오라클 Engineered Systems Solution Engineering 팀에서 Solution Engineer로 근무하고 있습니다. 이 블로그는 개인적인 연구 목적으로 운영되며, Oracle 사의 공식 입장을 대변하지 않습니다.
  • 정희락
    TunA
    정희락
  • 전체
    오늘
    어제
    • 분류 전체보기 (194)
      • Oracle (166)
        • SQL (32)
        • PLSQL (10)
        • Performance (72)
        • Administration (36)
        • Installation (3)
        • Utilities (1)
        • JSON (8)
        • Vector (4)
      • Exadata (15)
      • SQL*Plus (2)
      • Linux (5)
      • Resources (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 도서

    • 불친절한 SQL 프로그래밍
    • 불친절한 PL/SQL 프로그래밍
  • 태그

    12c
    19c
    21c
    23ai
    case study
  • 공지사항

  • 최근 글

  • 최근 댓글

  • 인기 글

  • 링크

    • Connor McDonald
    • Frits Hoogland
    • Jonathan Lewis
    • Julian Dontcheff
    • Julian Dyke
    • Kun Sun
    • Maria Colgan
    • Martin Bach
    • Mike Dietrich
    • Tanel Poder
  • hELLO· Designed By정상우.v4.10.0
정희락
INTERVAL 값 집계
상단으로

티스토리툴바