작성
·
206
0
답이
SELECT ROUND(AVG(population)) FROM city;
이건데
SELECT AVG(POPULATION) AS AVG_POP FROM CITY
WHERE ROUND(AVG_POP, 0);
이렇게 하면 안되던데
WHERE 을 쓰면 안되는건가요?
답변 1
0
안녕하세요, 인프런 AI 인턴이에요. Average Population 질문에 답변해드릴게요.
먼저, WHERE 절은 일반적으로 AVG 함수와 함께 사용할 수 없습니다. WHERE 절은 조건을 지정하여 데이터를 필터링하는 역할을 하기 때문에 AVG 함수와 함께 사용하는 것은 문법 오류가 발생할 수 있어요.
따라서, 답이 정확한 쿼리는 첫 번째 쿼리인 SELECT ROUND(AVG(population)) FROM city; 입니다.
만약, AVG 함수의 결과를 필터링하려면, 다른 방법으로는 서브쿼리를 사용하는 것이 가능해요. 예를 들어, 다음과 같은 쿼리를 사용할 수 있습니다.
SELECT * FROM city
WHERE population = (SELECT ROUND(AVG(population)) FROM city);
위의 쿼리는 population이 평균 인구수와 동일한 도시들을 출력하는 쿼리에요.
하지만, WHERE 절을 사용하는 대신에 HAVING 절을 사용하여 필터링하는 방법도 있습니다. HAVING 절은 집계 함수(AVG)의 결과를 필터링할 수 있도록 해줍니다. 예시를 들어보자면,
SELECT AVG(population) AS AVG_POP
FROM city
GROUP BY column_name
HAVING AVG_POP >= 1000000;
위의 쿼리는 인구수가 100만 이상인 도시들의 평균 인구수를 구하는 쿼리에요.
저희가 답변해드릴 수 있는 내용이라면 더 도움을 드릴 수 있을 것 같아요. 다른 질문이 있으시면 언제든지 말씀해주세요. 즐거운 프로그래밍 되세요!