작성
·
235
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
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와 함께 집계함수를 사용하는 경우)도 가능하다고 생각하시면 좋을 것 같습니다.
궁금증이 해결되셨길 바랍니다!