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 39654 게시물 읽기
No. 39654
그룹핑 한 결과의 마지막값 알아내기?
작성자
골머리
작성일
2012-09-23 01:43ⓒ
2012-09-23 01:50ⓜ
조회수
5,223

안녕하세요?

제목그대로 그룹핑한 결과의 마지막 값을 갖고 올려고 합니다.

----- 2012/09/10 DATA

CODE    GROUP_TOT    CNT      TIME         SORTSEQ
01                   A                      2   20120910         1
01                   A                      3   20120910         2          
01                   A                      6   20120910         3
01                   A                      4   20120910         4     (그룹의 마지막값)

02                   A                      2   20120910         1
02                   A                      3   20120910         2          
02                   A                      6   20120910         3
02                   A                      4   20120910         4     (그룹의 마지막값)

02                  A                       2   20120910         1
02                  A                       3   20120910         2          
02                  A                       6   20120910         3
02                  A                       4   20120910         4     (그룹의 마지막값)


분석 함수?
ROW_NUMBER() OVER(PARTITION BY CODE, GROUP_TOT ORDER BY  CODE, GORUP_TOT)  SORTSEQ
이런 문장을 이용하여 그룹핑하였고, 순서도 맞게 나왔습니다.

그런데 다음날 조회할때 , 2012/09/10 데이터를 기준으로 CODE별, GROUP_TOT별로 맨 마지막 값으로 갖고와서
오늘 2012/09/11 조회 할때 그 마지막 값을 비교하여 처리해야 합니다.

---- 2012/09/11 DATE
CODE    GROUP_TOT    CNT      TIME         SORTSEQ
01                A                       2       20120911         1        01   A   4   20120910   4 (그룹의 마지막값)
01                A                       3       20120911         2             
01                A                       6       20120911         3
01                A                       4        20120911        4

02                A                       2        20120911         1        01   A  4   20120910  4 (그룹의 마지막값)
02                A                       3        20120911         2          
02                A                       6        20120911         3
02                A                       4        20120911         4

02                A                       2         20120911         1      01  A   4   20120910   4  (그룹의 마지막값)
02                A                       3         20120911         2          
02                A                       6         20120911         3
02                A                       4          20120911        4

이라고 하면, 예를 들어 20120910 CODE '01' , GORUP_TOT 'A'의 (그룹의 마지막값) 을 비교 하는 겁니다.
만약에, 갖고 올수 있으면 마지막 값과 오늘 조회한 값에 같은 값이 있으면 그걸 찾아서 보여 주는 겁니다.

가능 할까요?

골 치가 아프네요...

고수님들 원 쿼리로 비교 할수 있는 방법이 없을까요?

 

매번 도움 받고... 미안한 마음 금치 못하고 있습니다..

수고하세요.. 

 

          

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

 SELECT *

FROM   TAB A
LEFT OUTER JOIN
      (
        SELECT *
        FROM  (
                SELECT CODE
                     , GROUP_TOT
                     , CNT
                     , TIME
                     , ROW_NUMBER() OVER(PARTITION BY CODE, GROUP_TOT ORDER BY GORUP_TOT DESC)  SORTSEQ
                FROM   TAB A
                WHERE  TIME = '20120910'
              )
        WHERE  SORTSEQ = 1
      ) B
ON     A.CODE      = B.CODE
AND    A.GROUP_TOT = B.GROUP_TOT
AND    A.CNT       = B.CNT
WHERE  A.TIME = '20120911'
 
햇살한조각님이 2012-09-27 11:35에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39657구현이 어려워요. [2]
어려워
2012-09-25
4798
39656레벨값을 숫자로 증가시키는 방법 좀 알려 주세요. [1]
은혜로살기
2012-09-24
4294
39655ORA-00604 / ORA-01003 에러 문의합니다.
금현
2012-09-24
5622
39654그룹핑 한 결과의 마지막값 알아내기? [1]
골머리
2012-09-23
5223
39653순환조회? [2]
해외
2012-09-21
4638
39652오라클 기준점을 기준으로 잘라내기 [3]
나그네
2012-09-21
4496
39651특정시간대에 있는 데이터 구하기 [1]
똥줄
2012-09-21
4243
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다