반응형
SELECT 
        T.idx, T.path, T.hash_idx
      , (SELECT MAX(modify_time) FROM proc WHERE hash_idx = T.hash_idx) as hash_lmt
      , (SELECT MAX(modify_time) FROM proc WHERE hash_idx = T.hash_idx AND `path` = T.path) AS modify_time
 FROM (
      SELECT * FROM proc
   ) AS T
GROUP BY T.hash_idx, T.path 
ORDER BY hash_lmt DESC, modify_time DESC;

경로와 해쉬 기준으로 group by 할 경우 단순 조회시 시간 정보가 누락되어 조회가 되었습니다.

그래서 서브쿼리를 이용해서 해당 경로의 최신 시간 정보를 가져오도록 서브 쿼리를 작성하였습니다.

SELECT 
        T.idx, T.group_code, T.path, T.hash_idx
      , (SELECT MAX(modify_time) FROM proc WHERE hash_idx = T.hash_idx) as hash_lmt
      , (SELECT MAX(modify_time) FROM proc WHERE hash_idx = T.hash_idx AND `path` = T.path AND `group_code` = T.group_code) AS modify_time
 FROM (
      SELECT * FROM proc
   ) AS T
GROUP BY T.hash_idx, T.path, T.group_code
ORDER BY hash_lmt DESC, T.group_code desc, modify_time DESC;

해시, 경로, 그룹 기준으로 group by 할 경우도 동일하게 조건을 하나 더 추가해서 누락된 시간정보를 조회하도록 하였습니다.

728x90

+ Recent posts