mssql 질문드립니다. 0 4 600

by 미무미 [2021.05.04 16:28:16]


구루비질문1.png (28,197Bytes)

예를들어

"서, 1"

"서, 2"

이렇게 이름이 "서"인 데이터가 2개면 

cnt가 큰것만 살아남도록 하려고 합니다.

도움 좀 주시면 감사하겠습니다.

 

아래는 임시테이블 생성 쿼리입니다.

with tb1(번호, 이름, cnt, 과목, 용도)
as
(
select '09048',    '서', '1    ','083000',    '소모품비    '     union all
select '09048',    '서', '2    ','081100',    '복리후생비 '   union all
select '09048',    '부', '1    ','081900',    '임차료     '        union all
select '09354',    '바', '1    ','015300',    '원재료     '                union all
select '12752',    '토', '5    ','053300',    '외주가공비 '       union all
select '15384',    '광', '1','083000',    '소모품비    '                union all
select '16592',    '천', '4','084800',    '잡비          '                union all
select '17607',    '빈', '1','081100',    '복리후생비 '                   union all
select '17645',    '골','1    ','081100',    '복리후생비 '               union all
select '20456',    '오','27    ','014600',    '상품          '            union all
select '21547',    '한','3    ','081100',    '복리후생비 '                   union all
select '23996',    '신','1    ','015300',    '원재료     '                    union all
select '24340',    '최','1    ','081100',    '복리후생비 '               union all
select '24826',    '대','1    ','082400',    '운반비     '                    union all
select '24826',    '대','26    ','014600',    '상품          '                union all
select '24995',    '신', '1    ','083000',    '소모품비    '            
)
select 
    *
from tb1
 

by pajama [2021.05.04 16:42:21]

row_number 함수를 사용했습니다.

 

select 번호, 이름, cnt, 과목, 용도
from (
select *, row_number() over (partition by 번호,이름 order by cnt desc) rn
from tb1
) t
where rn = 1

 


by 미무미 [2021.05.04 17:05:40]

group by로 아무리 조작해도 안되길래 왜그런가했더니.. group by로 안될 땐 이방법으로 해야되는군요 감사합니다!~


by 마농 [2021.05.04 17:57:20]

건수가 가장 많은게 2건 이상인 경우에 대한 처리 방안이 마련되어야 합니다.
- 공동 1등을 다 출력 할지? --> ROW_NUMBER 대신 RANK 사용
- 공동 1등 중에서도 추가 기준으로 단독 1등을 가려 낼지? --> 유니크한 정렬 항목 추가


by 미무미 [2021.05.04 18:11:44]

고려해야할 부분 짚어주셔서 감사합니다!!

 

방금 3건을 만들어서 테스트해보았는데 잘되서 일단 냅둬도 될 것 같다는 생각입니다...

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