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 34972 게시물 읽기
No. 34972
over()시 중복데이터 제거 방법좀 알려주세요
작성자
송민아(sssong)
작성일
2008-12-16 10:36ⓒ
2008-12-16 10:47ⓜ
조회수
4,789
SELECT ROW_NUMBER() OVER(ORDER BY amtm.usemon) as rn,          
                             amtm.usemon,                                         
                             amt.movienm,                                         
                             amcc.baseamt,                                        
                             sum(amtm.cnt) over(partition by amt.moviecd) as cnt,                                            
                             amcc.divrate,                                        
                             SUM(amtm.amt)OVER(PARTITION BY amt.moviecd) as totamt,
                             baseamt*(cnt*(divrate/100)) as settamt,              
                             SUM(amtm.cnt)over(partition by amtm.usemon) as mtcnt,
                             SUM(amtm.amt)over(partition by amtm.usemon) as mtamt 
                       FROM aibill.aimovtitlemonth amtm,                          
                          aibill.aimovcalc amcc,                                  
                          aibill.aimovtitle amt                                   
                    WHERE amtm.moviecd = amcc.moviecd                             
                      AND amtm.moviecd = amt.moviecd                              
                      AND amcc.calccd = 'C0001'                                   
                      AND amtm.usemon = '200812'                                        
                      AND amt.coopcd = 'AI000001'

위 쿼리 결과가 

RN USEMON MOVIENM BASEAMT CNT DIVRATE TOTAMT SETTAMT MTCNT MTAMT

1 200812 용의주도미스신 0 263 40 502000 0 28627 47044280
2 200812 용의주도미스신 0 263 40 502000 0 28627 47044280
3 200812 용의주도미스신 0 263 40 502000 0 28627 47044280
4 200812 용의주도미스신 0 263 40 502000 0 28627 47044280
5 200812 용의주도미스신 0 263 40 502000 0 28627 47044280
6 200812 용의주도미스신 0 263 40 502000 0 28627 47044280
7 200812 용의주도미스신 0 263 40 502000 0 28627 47044280
8 200812 용의주도미스신 0 263 40 502000 0 28627 47044280
9 200812 용의주도미스신 0 263 40 502000 0 28627 47044280
10 200812 걸스카우트 0 333 40 600000 0 28627 47044280
11 200812 걸스카우트 0 333 40 600000 0 28627 47044280


이런식으로 movienm에 중복데이터가 나오는데요 데이블중 aimovtitlemonth부분에 coopcd가 틀려서 coopcd갯수만큼 중복데이터가 나와요.
.제가원하는결과는 중복제거로 

200812 용의주도미스신 0 263 40 502000 0 28627 47044280
2 200812 걸스카우트 0 333 40 600000 0 28627 47044280

이렇게 결과가 나오게 하고싶은데요. 어떻게 해야하는지 알려주세요.

이 글에 대한 댓글이 총 2건 있습니다.
SELECT DISTINCT
배고파(hiteman100)님이 2008-12-16 13:40에 작성한 댓글입니다.

ROW_NUMBER() OVER (PARTITION BY amtm.coopcd ORDER BY amtm.usemon)

송장원(jnjill)님이 2008-12-16 16:12에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
34976import 에러 [3]
난감한상황
2008-12-16
6019
34975ORA-00918: 열의 정의가 애매합니다 [2]
박주영
2008-12-16
12633
34973package 복구...
666
2008-12-16
3185
34972over()시 중복데이터 제거 방법좀 알려주세요 [2]
송민아
2008-12-16
4789
34971create directory에 관해서 설명 좀 부탁 드립니다.
방이방이
2008-12-16
2042
34970ㅠㅠ 제가 쿼리를 잘못 짠건가요? ㅠㅠ 원하는 값이 안나오네요. 도아주세요 [3]
김광성
2008-12-16
2425
34969한 컬럼의 값 중 구분자를 제외하고 합 구하기 [2]
임재영
2008-12-15
3061
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다