database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41887 게시물 읽기
No. 41887
결과 수정] 누적 SQL 답 좀 부탁 드립니다.
작성자
김종석(kimanjs)
작성일
2022-02-15 16:28ⓒ
2022-02-16 09:11ⓜ
조회수
771

안녕하세요..

형님들 도움 좀 주세요...제발 ^^


>> 초기 데이터

컬럼1     컬럼2     컬럼3

홍길동          1     100

홍길동          2     150

홍길동          3     220

홍길동          4     130


>> 과정 흐름

컬럼1     컬럼2     컬럼3              누적1                                  누적2

홍길동          1     100                     0 + 100 + 계산                    0 + 1행 누적1 결과

​​​​​​​홍길동          2     150     (1행의 누적2) + 150 + 계산    (1행의 누적2) + 2행 누적1 결과

​​​​​​​홍길동          3     220     (2행의 누적2) + 220 + 계산   (2행의 누적2) + 3행 누적1 결과

​​​​​​​홍길동          4     130     (3행의 누적2) + 130 + 계산   (3행의 누적2) + 4행 누적1 결과


>> 결과 데이터

컬럼1     컬럼2     컬럼3              누적1                    누적2

홍길동          1     100           0  + 100 + 10  =  110     110

​​​​​​​홍길동          2     150        110 + 150 +  50 =   310     420

​​​​​​​홍길동          3     220        420 + 220 +  20 =   660   1080

​​​​​​​홍길동          4     130       1080+ 130 + 100 = 1330   1990


감사합니다.

 

이 글에 대한 댓글이 총 5건 있습니다.

sum over 함수를 써보세요~


with t (c1, c2, c3) as (

select '홍길동', 1, 100 from dual union all

select '홍길동', 2, 150 from dual union all

select '홍길동', 3, 220 from dual union all

select '홍길동', 4, 130 from dual

)

select c1, c2, c3, a1, sum(a1) over (partition by c1 order by c2) a2

from (

select c1, c2, c3, sum(c3) over (partition by c1 order by c2) a1 from t

)

정상규(pajama)님이 2022-02-15 20:13에 작성한 댓글입니다.

정상규님 답변 감사합니다.

제가 결과 데이터를 잘못 기재했네요...

결과 데이터를 수정하였습니다.

감사합니다.

김종석(kimanjs)님이 2022-02-16 09:12에 작성한 댓글입니다.

누적1의 계산이 어떻게 나오는지 잘 이해가 안되네요~

정상규(pajama)님이 2022-02-16 11:01에 작성한 댓글입니다.
WITH t AS
(
SELECT '홍길동' nm, 1 no, 100 v FROM dual
UNION ALL SELECT '홍길동', 2, 150 FROM dual
UNION ALL SELECT '홍길동', 3, 220 FROM dual
UNION ALL SELECT '홍길동', 4, 130 FROM dual
)
SELECT *
  FROM t
 MODEL
 PARTITION BY (nm)
 DIMENSION BY (no)
 MEASURES (v, 0 v1, 0 v2)
 IGNORE NAV
 RULES ( v1[1] = v2[0] + v[1] +  10, v2[1] = v2[0] + v1[1]
       , v1[2] = v2[1] + v[2] +  50, v2[2] = v2[1] + v1[2]
       , v1[3] = v2[2] + v[3] +  20, v2[3] = v2[2] + v1[3]
       , v1[4] = v2[3] + v[4] + 100, v2[4] = v2[3] + v1[4]
       )
;

 
마농(manon94)님이 2022-02-16 14:15에 작성한 댓글입니다.

마농님 답변 감사합니디..

처음보는 SQL이네요..

테스트하러 갑니다..꾸뻑

김종석(kimanjs)님이 2022-02-16 16:32에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41892순차 UPDATE 문의
김정묵
2022-04-20
1044
41890오라클 접속이 도저히 안되는데 아시는 분..ㅠㅠ [1]
이예서
2022-03-25
1011
41889sap oracle db 캐릭터셋문제
장용석
2022-03-03
1023
41887결과 수정] 누적 SQL 답 좀 부탁 드립니다. [5]
김종석
2022-02-15
771
41886정규표현식 패턴 질문 [1]
Thomas
2022-02-15
663
41885oracle 설치시 디렉터리 권한 질문 [1]
오라클초보
2022-02-03
581
41883오라클12c설치 질문입니다. [3]
신승익
2021-12-15
974
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2022 DSN, All rights reserved.
작업시간: 0.064초, 이곳 서비스는
	PostgreSQL v14.2로 자료를 관리합니다