order by 질문드립니다. 0 3 1,553

by 초보탈출 [SQL Query] [2012.06.11 13:51:39]



안녕하세요..

정렬에 대해 질문을 드리고자 합니다.

NAME   SEQ
C    1
C    2
C    3
A    4
A    5
A    6
B    7
B    8
B    9
.     .
.     .

이렇게 SEQ순으로 정렬된 쿼리가 있습니다.

NAME을 SEQ의 정렬에 맞게 중복을 제외하고 보고 싶은데 어떻게 해야 할까요?

NAME
C
A
B
.
..

이렇게 보고 싶은데 GROUP BY나 DISTINCT를 하면 CAB로된 정렬이 깨져버리네요..
SELECT A. NAME
FROM (SELECT ~~ 쿼리) A
GROUP BY A.NAME

미리 감사드립니다.

by 마농 [2012.06.11 14:15:00]
SELECT a.name
  FROM (SELECT ~~ 쿼리) a
 GROUP BY a.name
 ORDER BY MIN(seq)
;

by 초보탈출 [2012.06.11 16:40:26]

마농님 답변 감사드립니다.
마농님 답변대로 되긴 되는데 CABC 처럼 NAME은 같아도 SEQ가 다르면 NAME이 중복되어
나와야 하는데 CAB처럼 뒷쪽 C가 나오질 않습니다...
어떻게해야 할까요?

by 마농 [2012.06.11 17:59:57]
SELECT name
  FROM (SELECT name
             , seq
             , ROW_NUMBER() OVER(PARTITION BY name ORDER BY seq) rn
          FROM (SELECT ~~ 쿼리) a
        )
 GROUP BY name, seq - rn
 ORDER BY MIN(seq)
;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입