중복된 값중 최소값 구하는 쿼리 질문드립니다~! 0 1 576

by 천만달러 [Tibero] [2021.10.28 18:21:33]


쿼리문의.png (23,054Bytes)

SELECT CONTENTS_ID
    , COMP_TEXT
    , SORT_NO
FROM (
    SELECT A.CONTENTS_ID
        , B.COMP_TEXT
        , B.SORT_NO
    FROM TB_CONTENTS A, TB_CONT_COMPONENT B
    WHERE 1=1
    AND A.CONTENTS_ID = B.CONTENTS_ID
    AND A.CONTENTS_TYPE = 'FOT'
    AND A.USE_YN = 'Y'
    AND A.DEL_YN = 'N'
    AND A.POC_CD = 'NO'
    AND A.LANG_CD = 'KO'
    AND B.COMP_TYPE = 'A3'
    AND B.LANG_CD = 'KO'
) A
;

 

위 쿼리를 돌리면 사진처럼 중복된 ID값이 나오는데 그중에 SORT_NO가 제일 작은거 하나만 뽑고 싶습니다

구글링을 많이 해서 해결해 보려고 했는데...보고도 이해를 못해서 쿼리를 못짜는건지...잘안되네요...

도와주세요 ㅠ

by pajama [2021.10.28 19:38:24]

ROW_NUMBER 함수 사용하시면 될거 같네요. SORT_NO가 같으면 다른 기준이 필요할지도 모르겠네요.

SELECT CONTENTS_ID
    , COMP_TEXT
    , SORT_NO
FROM (
    SELECT A.CONTENTS_ID
        , B.COMP_TEXT
        , B.SORT_NO
        , ROW_NUMBER() OVER(PARTITION BY CONTENTS_ID ORDER BY SORT_NO) RN
    ...
) A
WHERE RN = 1
;

 

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