인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

likebat님의 프로필 이미지
likebat

작성한 질문수

실전! Querydsl

group by 조건 2개 이상 시 패치 카운트 오류 문제

작성

·

268

0

안녕하세요. 김영한 강사님. 지난 번 답변 감사드립니다!

현재 DB는 mysql이고,

group by 2개를 해서,  그 결과물의 총 row 갯수를 가져오려는데, (패치 카운트 사용하여)

에러가 발생하더군요. 

(group by 한개는 되던데....)

생각해보니 jpql은 from 절에 서브쿼리를 만들 수 없기 때문에, 

fetch count가 총 로우갯수를 가져올 수 없었던 것 같았습니다.(selct count() from (서브쿼리) 이런 구조가 안되서...)

DISTINCT도 컬럼 하나만 적용되는 것 같아서, 여러 대상을 DISTINCT한 후  카운트 하는 것도 안되는 것 같습니다.

이 쿼리는 꼭 2개의 GROUP by를 해야하기 상황이고, GROUP BY 1개만 해서 각각

카운트하고 group by 한 결과를 자바에서 sum 하는 

방식으로 할까 하다가 괜찮은 방법이 아닌 것 같아서 다른 방법을 찾고 있습니다.

인터넷을 뒤져봐도  마땅한 방법을 못찾아서

그냥 그룹바이 2개 쿼리의  카운트 부분만 네이티브 쿼리를 써야 하나 생각하고 있습니다.

좋은 방법이 없을까요?

혹시 querydsl에서 이 방법을 해결하기 어렵다면, 

다른 방식으로 해결이 가능할까요?

감사합니다.

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. likebat님

도움을 드리고 싶은데, 예시가 없으니 가능할지 안할지 정확하게 답변을 드리기가 어렵습니다.

우선은 from 절의 서브쿼리를 사용해야 하니 네이티브 쿼리를 사용하시고, 다음 자료를 만들어주시면 네이티브 쿼리를 대신해서 사용할 수 있는지 분석해드릴께요.

그래서 예시를 하나 만들어주시면 좋을 것 같아요.

다음과 같은 것을 준비해주시면 도움을 드릴께요.

1. TABLE 생성 DDL 정보와 설명

2. 예시용 insert 데이터 SQL

3. 원하는 결과를 뽑기위한 SQL 쿼리

4. 해당 테이블을 매핑한 JPA 엔티티 코드

5. 본인이 시도해본 테스트 코드

전체 프로젝트를 압축해서 올려주세요.

감사합니다^^

likebat님의 프로필 이미지
likebat

작성한 질문수

질문하기