결과값에 대한 중복로우 순서매길때 0 3 5,794

by 손님 ROW_NUMBER RANK OVER PARTITION BY [2009.12.04 09:17:52]


0001 D003 11 0000 2359 00:00 ~ 23:59 2009-12-03
0001 D003 11 1200 1400 12:00 ~ 14:00 2009-12-03
0001 D003 12 0000 2359 00:00 ~ 23:59 2009-12-03
0001 D003 13 0000 2359 00:00 ~ 23:59 2009-12-03
0001 D003 14 0000 2359 00:00 ~ 23:59 2009-12-03

위에 result값은 작업시간설정 정보입니다.
2번째컬럼인 ’D003’값은 공장코드번호 이구요. 3번째컬럼에 11,12,13,14 들은 공장내 위치구분코드입니다.

여기서 ’11’ 위치코드가 2개있는걸 보실수있는데..작업시간설정은 몇개씩 설정이가능합니다
즉 한 위치에 몇개씩 작업시간을 설정할수있죠.
저는 이 쿼리에서 결과값을 가져올때 위치코드별 작업시간설정들에 일련번호를 주고싶습니다.
예를 들어 11번위치에 작업시간설정이 3개등록되있을경우

0001 D003 11    TIME1     0000 2359 00:00 ~ 23:59 2009-12-03
0001 D003 11    TIME2     1200 1400 12:00 ~ 14:00 2009-12-03

이런식으로 하고싶습니다 지금 생각중인데 RANK를 써야할지 ROW NUMBER를 쓰는건지 잘모르겠어서 질문드립니다.

by 선모 [2009.12.04 09:25:41]
row_number() over(partition by 공장코드, 공장위치구분코드 order by 시간)

이런씩으로 하면.. 순서 부여할수 있을것 같은데요..


by 마농 [2009.12.04 09:28:56]
선모님 답글대로 하시면 됩니다.
rank(순위) 와 row_number(순번)의 차이는 동순위 처리에 있습니다.
순위에는 동순위가 있을 수 있구요, 1등이 2이면 2등 없이 3등이 나오죠.
반면에 순번은 유일한 값입니다.

by 손님 [2009.12.04 10:34:33]
감사합니다 처리하였습니다 6^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입