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

[SQL 실전반 4기] 코차님의 프로필 이미지
[SQL 실전반 4기] 코차

작성한 질문수

[백문이불여일타] 데이터 분석을 위한 중급 SQL

UNION 해커랭크 문제풀이(난이도 상)

group by와 집계함수 질문

작성

·

214

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
SELECT x,y FROM functions WHERE x = y GROUP BY x,y HAVING COUNT(*) = 2 ORDER BY x,y ASC 이랬을때
원래는 SELECT문에 집계함수가 있을때만 GROUP BY가 가능한데 여기서는 집계함수를 출력을 안했다고 생각할수있으니까 group by를 사용할 수 있는건가요?
아니면 제가 having문을 제외한경우에도 group by를 사용할수있던데 그럼 group by는 원래 집계함수 없이도 추출이 가능한건가요?

답변 1

3

데이터리안님의 프로필 이미지
데이터리안
지식공유자

안녕하세요, gmlwls627님

SELECT 문에 집계함수가 있을 때만 GROUP BY가 사용 가능한 것은 아니구요.

일반적으로는 GROUP BY를 하는 목적이 그룹별로 합계를 내거나(SUM), 숫자를 세거나(COUNT), 평균을 내기 위한(AVG) 목적으로 그룹핑을 하기 때문에 GROUP BY 하여 집계된 값까지 출력하는 경우가 대부분이기는 합니다.

 

SELECT x,y
FROM functions
WHERE x = y
GROUP BY x,y
HAVING COUNT(*) = 2
ORDER BY x,y ASC

 

그러나 질문주신 쿼리처럼 GROUP BY로 연산한 후에 집계한 결과는 출력하지 않아도 되는 특수한 경우라면 해당 쿼리처럼 집계함수를 써주지 않을 수도 있습니다.

궁금증이 해결되셨길 바랍니다.

[SQL 실전반 4기] 코차님의 프로필 이미지
[SQL 실전반 4기] 코차

작성한 질문수

질문하기