p_calc(1,10) 1부터 10가지의 합은 55입니다!
원하시는 것이 1부터 10까지의 합을 구하는 쿼리라면..
SELECT sum(rnum)FROM (SELECT ROWNUM rnum FROM tab WHERE ROWNUM < 11)
이때, tab이라는 테이블에는 Row의 개수가 최소 10개 이상이어야 합니다.
수고하세요~
장진주님이 알려주신 connect by를 이용하여 합 구하기(9i이상) ^^;
SELECT SUM(LEVEL)FROM DUALCONNECT BY LEVEL BETWEEN 1 AND 10
만일 5부터 10까지의 합을 구하라면 아래처럼 하면 되는군요
SELECT SUM(LEVEL)FROM DUALWHERE LEVEL>=5CONNECT BY LEVEL BETWEEN 1 AND 10
왜 이렇게는 하지 않나요?
SELECT :n * (:n + 1) / 2 FROM DUAL
-- SQL 쿼리 질문은 SQL 까페에서... http://cafe.daum.net/oraclesqltuning
장진주님이 알려주신 내용을 조금 응용하면,,,
n1 ~ n2까지의 합
select :n2*(:n2+1)/2 - :n1*(:n1-1)/2 from dual
네, 기석님처럼 n1~n2까지 합은,
SELECT (:n2 + :n1) * (:n2 - :n1 + 1) / 2 FROM DUAL