--오라클 합계 함수 ROLLUP
오라클 ROLLUP은 데이터베이스 질의 언어(SQL)에서 사용되는 기능 중 하나입니다.
ROLLUP은 GROUP BY 절과 함께 사용되며, 그룹화된 결과에 대한 합계나 서브 합계를 생성합니다.
SELECT region, product, SUM(amount) AS total_sales
FROM sales
GROUP BY ROLLUP(region, product);
-- GROUP BY ROLLUP 을 사용할 때 인자가 두개 이상이 될 때
HAVING GROUPING_ID 함수를 사용하여 불필요한 값을 제거할 때 사용할 수 있다.
GROUPING_ID 함수에서 매개변수의 컬럼 순서에 맞게 해당 컬럼이 NULL인 경우 1을 반환하고 한 행을 2진수로 생각하면 된다.
--오라클 함수 REGEXP_SUBSTR
REGEXP_SUBSTR([문자열], [구분자(패턴)], [구분자찾을시작위치], [구분자찾은순서])
정규식 함수를 사용하여 구분자 쉼표(',')를 기준으로 문자열을 자르는 예제이다.
WITH tab AS (
SELECT 'Java,Kotlin,Python,Swift' AS lang FROM dual
)
SELECT a.lang
, REGEXP_SUBSTR(a.lang,'[^,]+', 1, 1) AS str1
, REGEXP_SUBSTR(a.lang,'[^,]+', 1, 2) AS str2
, REGEXP_SUBSTR(a.lang,'[^,]+', 1, 3) AS str3
, REGEXP_SUBSTR(a.lang,'[^,]+', 1, 4) AS str4
FROM tab a
--그룹단위로 나누어 카운트하고 싶을때
COUNT(1) OVER (PARTITION BY NULL) AS TOT_CNT
--전체 행 카운트
COUNT(*) OVER () AS TOT_CNT
-- 오라클 페이징 쿼리문
SELECT A.*
FROM (
SELECT ROWNUM AS RNUM
, COUNT(*) OVER() AS TOT_CNT
, A.*
FROM (
검색할 조회 쿼리문
) A
) A
) WHERE RNUM BETWEEN 1 AND 10
;
--ROW_NUMBER 함수를 이용한 최근 데이터 조회
SELECT B.*
FROM (
SELECT A.*, ROW_NUMBER() OVER(PARTITION BY 그룹 ORDER BY 정렬 DESC) AS RN
FROM A
) B
WHERE RN = 1
* 참고 사이트
https://developer-davii.tistory.com/69
[Oracle] 그룹 함수 over, partition by
분석함수란? SELECT 분석함수 OVER([PARTITION BY 칼럼] [ORDER BY 칼럼] [WINDOWING 절]) FROM 테이블; 분석함수는 이미 사용해보셨을 겁니다. COUNT(), AVG(), SUM() 등과 같이 GROUP BY 절과 함께 사용했던 함수들도 있
developer-davii.tistory.com
https://luckyguystory.tistory.com/92
오라클 11 버전이하, 페이징(paging) 방법
mysql 에서는 limit 키워드가 존재하여, 간단히 페이징 처리가 가능함 • SELECT * FROM USER orders LIMIT 10; • SELECT * FROM USER orders LIMIT 20; • SELECT * FROM USER ORDERS LIMIT 10 OFFSET 0; • SELECT * FROM USER ORDERS LIMIT 10
luckyguystory.tistory.com
[Oracle] 그룹별 가장 최근 데이터 1건 가져오기
오라클에서 그룹별 가장 최근 데이터 또는 마지막 데이터 1건만 조회하기 위해서는 분석함수(ROW_NUMBER, RANK)를 사용하면 쉽게 해결할 수 있다. 또 다른 방법으로 서브 쿼리를 사용하여 MAX 값을 추
gent.tistory.com
https://gent.tistory.com/386#google_vignette
[Oracle] 오라클 GROUPING, GROUPING_ID 함수 사용법 정리
오라클의 GROUPING, GROUPING_ID 함수는 소계와 합계를 집계할 때 사용하는 ROLLUP, CUBE, GROUPING SETS 함수와 함계 사용된다. 소계와 합계로 집계되어 출력된 행을 구분할 때 사용한다. 기본 사용법 GROUPING
gent.tistory.com
'DB' 카테고리의 다른 글
오라클 데이터 마스킹 (0) | 2024.08.23 |
---|---|
오라클 DB 공부(DATATYPE) (0) | 2024.08.08 |
오라클 오류들 [ ORA-CODE ] (0) | 2024.06.19 |
오라클 DB 공부(VIEW,PROCEDURE,JOB) (0) | 2024.05.17 |
오라클 트리거 (1) | 2024.04.04 |
댓글