group by 사용 질문 0 2 1,447

by 차차 [Oracle 기초] [2019.04.30 13:42:17]


안녕하세요 다름이 아니라 궁금한점이 있어 질문을 남깁니다.

이해가 쉽게 예를 들어서 말씀드리면 하나의 테이블에 

가게 컬럼 (PK)

체인점 컬럼이 있다고 가정하면

가게         체인점

스타벅스 서울점(10)

스타벅스 인천점(20)

스타벅스 천안점(30)

========================

SELECT 가게, MAX(체인점)

  FROM 가게테이블

GROUP BY 가게

===========================

으로 스타벅스에 멥핑되어 있는 최대값 천안점(30)을 추출할 수 있는데요(이해에 도움이 되고자 적었는데 오히려 헷갈릴수도 있겠네요..)

제가 질문드리고 싶은 요지는 저렇게 하나의 테이블에서 사용할 컬럼이 있는 경우는 GROUP BY를 통해 최대값을 간단하게 추출할 수 있는데

예를 들어 가게테이블과 조인을 시켜서 많은 컬럼들까지 조회를 하고자 하면 그룹바이절에 일일이 다 컬럼을 적어야 조회가 되는데

이건 원하고자 하는 쿼리방향도 아니고 조회시간도 다소 길어질 거 같아서 혹시 여러 테이블을 조인하면서 특정 컬럼(가게)의 조회 된 필드 값(체인점)이

최대값만 추출하고자 하면 GROUP BY 이외엔 다르게 빼낼 수 있는 방법이 있을까요??

어떻게 해야할 지 감이 오지 않아서 질문 남겨봅니다. 어떤식으로 해보라는 방향만 제시해주셔도 감사하겠습니다!

 

 

 

by 마농 [2019.04.30 14:25:55]

조인이 필요한 경우
조인 후 그룹바이를 할 수도 있지만
그룹바이 후 조인하는 방법도 있습니다.
분석함수를 이용하는 방법도 있구요.
그 밖에 다양한 여러 방법이 존재할 수 있습니다.
다만, 그 중 가장 적절한 방법은 그때 그때 다릅니다.
그때 그때 실제 상황에 따라 적절한 방법은 다 다르므로
구체적인 상황을 가지고 질문해 주셔야 합니다.
이런식의 포괄적 질문에는 포괄적인 답변밖에 드릴 수가 없습니다.
==> 방법은 많지만, 그 때 그 때 달라요.


by 초리초리뽕 [2019.05.02 08:39:09]

감사합니다 마농님!

답변 주신거 보고 계속 고민을 하고 어떻게 풀지 하고는 있는데 그래도 처음보다는 어느정도 감이 잡혔네요 ㅎㅎ

도움주셔서 감사합니다

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