반응형
(postgresql 를 사용하지만, 나중에 어느 database 로 변경될 지 모르기때문에.. 최대한 기본적인 쿼리를 사용해야함.)
아래와 같은 테이블에서 electorGroupId 별로 ccf_version 이 높은 데이터의 ccf 값을 뽑아와야한다. (x 가 아닌 데이터가 나와야함..)
처음에는 아래처럼 작성했는데.. group by 는 집계함수라 ccf 도 group by에 포함되어야 한다는 오류가 나왔다.. mysql 에서는 조회가 되긴 했는데..아무튼 틀린 쿼리다..
select max(ccf_version), elector_group_id, ccf from ra_ccf group by elector_group_id;
SQL Error [42803]: 오류: column "ra_ccf.ccf" 는 반드시 GROUP BY 절내에 있어야 하던지 또는 집계 함수 내에서 사용되어져야 한다
Position: 44
시행착오중..이 쿼리도 postgresql 에서는 성공한 쿼리인데.. 너무 복잡해서 더 찾아봤다..!
SELECT ccf
FROM (
SELECT elector_group_id, ccf_version, ccf,
ROW_NUMBER() OVER(PARTITION BY elector_group_id ORDER BY ccf_version DESC) as index
FROM v2xrav2.ra_ccf
) AS res
WHERE index = 1
아무튼 조회 성공한 쿼리는 아래와 같다!
select crl
from ra_crl
where (elector_group_id, crl_version)
in (
select elector_group_id, max(crl_version) as crl_version
from ra_crl
group by elector_group_id
)
반응형
'개발 > DB' 카테고리의 다른 글
[MySQL] not exists, exists 사용하여 insert/update 하기. (0) | 2022.10.26 |
---|---|
intelliJ 에서 springboot + cubrid 연결 시 만난 에러 : java.lang.UnsupportedOperationException] with root cause (1) | 2022.07.26 |
MyBatis 대량 데이터 INSERT - SqlSessionFactory 이용! (2) | 2022.04.07 |
[Oracle] 대량 데이터 insert 하기. UNION ALL 사용. (1) | 2022.02.21 |
[DB] DB 별 LIKE 검색 사용 (0) | 2021.11.10 |