Development /Database

[Oracle] 오라클 데이터 추출 조회쿼리

해피마루 2022. 8. 22. 17:46
728x90
반응형

<  오라클 데이터 추출 쿼리  >

 

***  지정한 컬럼에 대한 데이터 rank()로 가져오기 

조건절에 해당하는 데이터를 group by로 묶어 추출하여

ord1, ord2로 정렬해 rank()로 순서값을 보여주는 쿼리

 

select * from (

select ord1, ord2

, rank() over(partition by ord1 order by ord1, ord2) num

from TMP_DATA

where tmp_code='CP'

group by ord1, ord2

) where num < 4    -- rank()값이 4보다 작언것만 보여주도록 설정함

;

 

 

*** 조건절로 100개 데이터 각각 추출한 데이터를

    모두 합쳐서 조회 ( union all)

 

select * from(

select * from TMP_DATA

where tmp_code='T101'

and rownum <= 100

union all

select * from TMP_DATA

where tmp_code='T102'

and rownum <= 100

union all

select * from TMP_DATA

where tmp_code='T103'

and rownum <= 100

;

 

*** 일별 조건별 처리된 건수 조회

 

select 

dtm  - 요청일

, num  -- 전체요청건수

, daN as dataNo       -- 데이터 없는 건수 

, daC as dataChk     -- 데이터 있는 건수 

, daD as dataDupl    -- 데이터 중복 요청건수 

, ( num - daN - daC - daD ) as otherValue    --  처리 안된 건 체크 ( 전체요청 건수 - 데이터 없는 건수 - 중복건수 )

from(

select substr(tmp_dtm, 0,8) dtm

, count(sqnc) num

, sum(decode(tmp_nb, '01', 1, 0)) daN

, sum(decode(tmp_nb, '02', 1, 0)) daC

, sum(decode(tmp_nb, '03', 1, 0)) daD

from TEMP_DATA

group by rollup(substr(tmp_dtm, 0,8))

)

order by dtm desc

 ;

728x90
반응형