힙합거러지
67
2017-12-26 20:07:39
4
963

Oracle 쿼리 관련 질문입니다.


안녕하세요. 개발하는 일개 개발자 입니다.

오라클 select 쿼리작성하는데 영 머리가 안돌아가네요 ㅠㅠ


데이터

a 100 '김철수'

a 200 '김영희'

a 300 '테스트2'

b 100 ' 테스트1'

b 200 ' 테스트3'

b 300 ' 테스트4'


데이터가 위와 같을때 key를 a,b....등이라고 했을때


1, a 100 '김철수'

2, a 200 '김영희'

3, a 300 '테스트2'

1, b 100 ' 테스트1'

2, b 200 ' 테스트3'

3, b 300 ' 테스트4'


이렇게 select쿼리를 짜려면 어떻게 해야될까요

0
  • 답변 4

  • 밤과라임
    3k
    2017-12-26 20:34:26

    orderby 를 첫번째컬럼과 두번째 순서로 오름차순으로 주면 될 것 같습니다.

  • 힙합거러지
    67
    2017-12-26 21:23:21

    제가 질문을 잘못 올린거 같네요. 제가 바라는건 앞쪽에 시퀀스를 어떻게 구하냐에요 ㅠㅠ

  • mecca0515
    96
    2017-12-26 22:36:02


    ROW_NUMBER() OVER (PARTITION BY 컬럼1 ORDER BY 컬럼2 ASC) AS NO

    위 한줄 추가하시면 됩니다.

  • 얄룰얄링
    25
    2017-12-27 13:56:57


    WITH T AS (
    SELECT 'a' col1, 100 col2, '김철수' COL3 FROM dual 
    UNION ALL SELECT 'a' , 200, '김영희' FROM dual
    UNION ALL SELECT 'a' , 300, '테스트2' FROM dual 
    UNION ALL SELECT 'b' , 200, '테스트1' FROM dual 
    UNION ALL SELECT 'b' , 200, '테스트3' FROM dual 
    UNION ALL SELECT 'b' , 200, '테스트4' FROM dual
    )
    SELECT ROW_NUMBER() OVER(PARTITION BY col1 ORDER BY col2) seq 
    		  ,col1
          ,col2
          ,col3
    FROM t 
    결과 값 
    1	a	100	김철수
    2	a	200	김영희
    3	a	300	테스트2
    1	b	200	테스트1
    2	b	200	테스트3
    3	b	200	테스트4


  • 로그인을 하시면 답변을 등록할 수 있습니다.