같은 그룹ID의 최신데이터만 가져오기 0 2 2,860

by xcrew [SQL Query] postgresql [2024.02.15 15:41:24]


안녕하세요. 
다음과 같은 쿼리로 결과를 얻었을때

SELECT 
	atch_file_id
	, atch_group_id
	, corp_cd
	, reg_dy
	, reg_ts
	, reg_user_id
FROM tb_comm_atchfl01m a
WHERE 
	a.atch_file_sts_cd = 'I'
	AND a.corp_cd = 'ENDU'
	AND a.reg_dy = '20240215'
	AND a.reg_user_id = 'TX9RLK65'
ORDER BY reg_ts DESC;


 

atch_file_id atch_group_id corp_cd reg_dy reg_ts reg_user_id
8LBUA1PR2W4 M689H52EXD ENDU 20240215 2024-02-15 11:58:23.974 TX9RLK65
JFC0K7GNYDQ M689H52EXD ENDU 20240215 2024-02-15 11:58:23.962 TX9RLK65
AEE12DFVEDR 91N7AEFPB4 ENDU 20240215 2024-02-15 11:21:38.044 TX9RLK65
FYTDFGW3DF Q73M8EFPG1 ENDU 20240215 2024-02-15 11:15:55.753 TX9RLK65
KJUUHHTDDR LKQTX97V1U ENDU 20240215 2024-02-15 11:11:57.642 TX9RLK65
PEODKFISDFF LKQTX97V1U ENDU 20240215 2024-02-15 11:11:57.628 TX9RLK65

reg_ts가 제일 최신데이터 중 atch_group_id 같은 건만 조회 되게 하고 싶습니다.
atch_group_id가 같은 건수는 여러 건 일수 있습니다.

그래서 원하는 결과는 아래와 같습니다.

도움 부탁드립니다.

tch_file_id atch_group_id corp_cd reg_dy reg_ts reg_user_id
8LBUA1PR2W4 M689H52EXD ENDU 20240215 2024-02-15 11:58:23.974 TX9RLK65
JFC0K7GNYDQ M689H52EXD ENDU 20240215 2024-02-15 11:58:23.962 TX9RLK65
by 마농 [2024.02.15 20:02:42]
SELECT atch_file_id
     , atch_group_id
     , corp_cd
     , reg_dy
     , reg_ts
     , reg_user_id
     , 
  FROM (SELECT atch_file_id
             , atch_group_id
             , corp_cd
             , reg_dy
             , reg_ts
             , reg_user_id
             , MAX(reg_ts) OVER() ts1
             , MAX(reg_ts) OVER(PARTITION BY atch_group_id) ts2
          FROM tb_comm_atchfl01m
         WHERE atch_file_sts_cd = 'I'
           AND corp_cd          = 'ENDU'
           AND reg_dy           = '20240215'
           AND reg_user_id      = 'TX9RLK65'
        ) a
 WHERE ts1 = ts2
 ORDER BY reg_ts DESC
;

 


by xcrew [2024.02.16 15:32:32]

감사합니다 마농님~ 해결 되었습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입