Thinking...

2007/10/25 07:25
대용량 데이터베이스 솔루션 II권 1-65에 있는 Quiz의 내용이다.


Col1 Col2
A 10
B 20
C 10
D 30

위와 같은 테이블을 하나의 쿼리를 이용하여 아래와 같은 모양으로 출력하라.
A 10 10
B 20 30
C 10 40
D 30 70

며칠에 걸친 고민에 고민. -_-?????
거기에 특별한 함수를 쓰지 않고 풀려고 노력했다.
그리고... 어제 저녁에 rownum을 갖고 비교하면 되지 않을까라는 생각으로 아래와 같은 쿼리를 짰었다.
물론, 집에는 컴퓨터가 없는 관계로 손으로 쓱싹쓱싹 쓴 손 쿼리. ㅋ

SELECT A.col1
       , A.col2
       , (A.col2 + (SELECT SUM(B.col2) FROM table1 B
            WHERE ROWNUM < A.ROWNUM-1)
       ) col3
FROM table1 A

실행해보니까, rownum을 rownum으로 비교가 안된다. -.-;;
지대 좌절. ㅠ_ㅠ

이왕 손에 잡은거 풀어보겠다느 생각으로 매달려봤다.
문득 저 col1의 값들이 눈에 들어왔다.
문자도 숫자로 변환이 가능하다는 생각이 들었다. 그리고 책에서 봤던 ASCII라는 함수도 떠올랐다.
그리고는 열심히 쿼리 짰다. ^^v

SELECT A.col1, A.col2
    ,(A.col2 + (SELECT NVL(SUM(B.COL2), 0)
        FROM table1 B
        WHERE ASCII(B.col1) < ASCII(a.col1)
        )
    ) col3
FROM table1 A
위의 쿼리가 문제와 같은 결과를 return한다. V^___^V
그리고 이 쿼리는 NVL 함수를 isNULL로 교체하면 Oracle과 MS-SQL 모두에서 실행된다.
사용해본 DBMS가 위의 두 개 밖에 없어서, 다른 DBMS는 어떤지 잘 모르겠다. ^^;
즉, 특정 DBMS에 종속되는 특별난 함수를 쓰지 않는 것이 장점(?)이라고 할 수 있겠다. (지나친 자화자찬인가?)

실행결과?

만족스럽다. 하하하 ^______________^
고민했던 보람이 있다. ^_^

불교에서 말하는 돈오점수라는 말. 요즘들어 가끔 느끼고 있다.
깨달음이란 한순간이라는 것.
그렇지만 그 깨달음을 얻기 위해서는 평소에 부단히 노력해야하고, 중간에 지치지 않을 수 있는 스테미너가 필요하다.
지치지 말자. 조금 힘들고, 누군가 나를 뒤에서 조롱할지라도 내가 지치지 않으면 어느 순간에는 나를 조롱하던 사람들을 앞질러 있을테니까.

욕속부달이다... ^^
오늘처럼 열심히 노력하고, 공부하자!
이올린에 북마크하기(0) 이올린에 추천하기(0)

트랙백 보낼 주소 :: http://coolsoo.net/blog/uni1978/trackback/1173598873

댓글을 달아주세요:: 네티켓은 기본, 스팸은 사절

  1. 2007/10/25 09:02
    댓글 주소 수정/삭제 댓글
    스고이데스네~ ^_^ 넘 이뿌!!!! 나도.. 욕속부달 명심할께.. ^^
  2. 2007/10/26 10:12
    댓글 주소 수정/삭제 댓글
    와~ 정말 멋지다. 영순이도 너도 이 어려운 것을...이해하다니.

    나한테만 어려운건가? ^^;

    마지막 글들...공감이 간다.

    열심히 살아야겠어! (다시 한 번 작심삼일!)

    총총...
    • 2007/10/26 12:54
      댓글 주소 수정/삭제
      작심 삼일을 3일 주기로 하면 되지. ^_^

      요즘 부쩍 나태해진거 같아.
      특히 내 마음이 말야.
      다시 신발끈을 조여 매야겠어. ^^
[로그인][오픈아이디란?]

◀ PREV : [1] : ... [86] : [87] : [88] : [89] : [90] : [91] : [92] : [93] : [94] : ... [387] : NEXT ▶

BLOG main image
열정은 동사다. by 無聲呼人

카테고리

All that my life (387)
Notice (3)
Monologue (215)
책, 영화 그리고 음악 (15)
내가 보는 세상 (22)
I like computer (110)
WishList (9)

글 보관함

달력

«   2009/01   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Statistics Graph