LEVEL 주는거에 대한 질문입니다.. 1 2 1,897

by 손님 SQL문의 [2009.08.17 11:14:37]


ID              날짜               결과값    
123         20090801         30
124         20090801         40
124         20090802         20
125         20090803         30
125         20090805         30
125         20090806         60

............

이런식으로 데이터가 되어 있다면..

여기에 ID로 LEVEL을 주고싶습니다.

ID             날짜            결과값           LEVEL 
123         20090801         30                1
124         20090801         40                2
124         20090802         20                2
125         20090803         30                3
125         20090805         30                3
125         20090806         60                3

이렇게요..

음..행을 열로 하려구 하고있는데.. 너므 어렵네요 ㅠ.ㅠ

일단 LEVEL 을 주고 어케 하면 대지 않을까해서 질문올려봅니다.

도와주세요~ ㅠ.ㅠ

by 마농 [2009.08.17 11:23:36]
원하시는 것이 의미상 레벨보다는 순번인 것 같은데요.
단순하게는 ID - 122 하셔도 위 예제에 대한 결과는 나오구요.
시작 id를 모르고 id가 중간 중간 빌 수도 있다면 다음과 같이.
DENSE_RANK() OVER(ORDER BY id)

by 전창환 [2009.08.17 12:25:57]
훔.. 행을 열로 하신다고 하셨으니.. 하시려는 중간과정정도로 보이네요... level을 주셔서 디코드문으로 열로 변환하시려는거 같기도 하고... 그런의도시라면 마농님 말씀처럼 하셔서 select 절에서 decode(level, 1, id), decode(level, 2, id)... 식으로 하시면 될꺼 같네요... 완성된 결과가 없는거 같아 단정할 수는 없을꺼 같지만... 잘해보셔요 ^^...
결과값을 sum하실꺼아면 그룹바이나 rollup이나 방법은 여러가지가 있으니 참조하시고요..
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입