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

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

작성한 질문수

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

INNER JOIN 해커랭크 문제풀이

2번과 3번문제 집계함수 질문

작성

·

235

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

2. population census SELECT SUM(city.population) FROM city INNER JOIN country ON city.countrycode = country.code WHERE continent = 'Asia' 집계함수를 쓰면 groupby를 써야한다고 했는데 왜 여기선 groupby를 안썼나요?

 

3. average population of each continent

 

SELECT country.continent

, FLOOR(AVG(city.population))

FROM city

INNER JOIN country ON city.countrycode = country.code

-- GROUP BY country.continent

group by를 안쓸경우 아래와 같은 에러코드가 나오는데 

ERROR 1140 (42000) at line 1: In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'country.continent'; this is incompatible with sql_mode=only_full_group_by

 

이게 select문에 집계함수와 집계함수아닌 컬럼이있을때 groupby로 select에 있는 집계함수가 아닌 컬럼을 적어야 한다는 뜻인가요?

 

만약에 맞다면 select문에 그냥 집계함수만 있을경우에는 group by를 안적어도 괜찮은 건가요?

 

답변 1

1

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

안녕하세요 gmlwls627님
집계함수의 용법은 크게 두가지가 있습니다.

1. 전체 데이터를 요약

2. 특정 컬럼의 값들로 그룹핑 된 값에 대해 각 그룹별 요약

1번 용법이 첫번째 질문에서 문의하신 SELCT에서 집계함수만 사용하는 경우에 해당하고, 2번의 경우가 두번째 질문에서 문의해주신 GROUP BY를 사용하는 경우 입니다.

집계 함수는 말 그대로 데이터를 요약, 집계하여 보여주는 함수이기 때문에 전체 데이터에 대한 요약(SELECT 절에 집계함수만 사용하는 경우)도 가능하고 GROUP BY와 함께 사용하여 각 그룹의 특정 값에 대해 요약을 해주는 것(GROUP BY와 함께 집계함수를 사용하는 경우)도 가능하다고 생각하시면 좋을 것 같습니다.

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

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

작성한 질문수

질문하기