조건의 의한 우선순위 구하기~ 도움요청드려요 0 1 835

by 광어얌 [SQL Query] [2017.01.23 22:11:26]


안녕하세요

쿼리를 어떻게 해야될지 몰라서 도움요청합니다

총 데이터는 아래구요

----- 총 데이터 -----

테이블명 : TEST

GROUP_CD CNT
1 2
9 1
3 4

 

1. 예를들어 어떤 조건의 의해서 SELECT된 데이터가 

GROUP_CD CNT
1 2
9 1
3 4

 결과 : GROUP_CD : 1, CNT : 2

이렇게 나왔을떄 GROUP_CD가 1인게 있다면 GROUP_CD의 CNT를 가져와야 되구요

GROUP_CD의 1은 절대적으로 무조건 우선적으로 가져와야 됩니다 다른 GROUP_CD가 있어도요

 

2. 어떠한 조건의 의해서 아래와 같이 나오게 됬을떄는 우선 GROUP_CD가 1은 아니므로 그룹의 의미는 또이또이

라서 CNT가 가장 큰값을 가져오면 됩니다

GROUP_CD CNT
9 1
3 4

결과 GROUP_CD : 3, CNT : 4

 

쿼리를 짜보긴 했는데 잘 안되고 엉뚱한 값이 나와서 도저히 잘 모르겠어요ㅠㅠ

고수님들 쿼리좀 도와주세요~

by jkson [2017.01.24 07:58:58]
with t as
(
select '1' group_cd, 2 cnt from dual union all
select '9' group_cd, 1 cnt from dual union all
select '3' group_cd, 4 cnt from dual
)
select *
  from (
        select group_cd, cnt
             , row_number() over 
               (order by  decode(group_cd,'1',null,cnt) desc nulls first) rn 
          from t
       )
  where rn = 1

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입