inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

집계함수 해커랭크 문제풀이

Average Population 질문 있습니다.

260

hipass4

작성한 질문수 12

0

답이

SELECT ROUND(AVG(population)) FROM city;

이건데

SELECT AVG(POPULATION) AS AVG_POP FROM CITY

WHERE ROUND(AVG_POP, 0);

이렇게 하면 안되던데

WHERE 을 쓰면 안되는건가요?

sql

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 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만 이상인 도시들의 평균 인구수를 구하는 쿼리에요.

저희가 답변해드릴 수 있는 내용이라면 더 도움을 드릴 수 있을 것 같아요. 다른 질문이 있으시면 언제든지 말씀해주세요. 즐거운 프로그래밍 되세요!

리트코드 1280. Students and Examinations

0

75

3

16강 LEFT JOIN 리트코드 (183. Customers Who Never Order) 관련 질문

0

89

2

African Cities 문제관련 질문

0

54

1

SQL 코딩테스트 질문

0

206

1

HACKER RANK에서 문제찾기

0

98

2

강의 자료 다운로드

0

90

2

Asian population 문제가 없어요

0

77

2

INNER JOIN 에서 A.키 쓸때 빨간 색 나오고 'dause'

0

68

2

별칭 관련해서 질문 있습니다.

0

79

2

rising temperature 문제 질문

0

98

2

해커랭크 TOP EARNERS 문제 질문

0

99

1

ON 뒤에 질문

0

95

2

INNER JOIN 질문. 강의와 결과값이 다릅니다.

0

196

3

END, 뒤에 * 붙이면 에러가 뜹니다

1

204

2

CustomerID가 중복되서 나타나요

0

234

3

별칭이 전체 테이블을 못 불러와요.

0

144

2

CASE WHEN 쿼리 오류 문의

1

325

3

CASE문제풀이 질문

0

125

1

Customers Who Never Order 풀다가 Alias관련 질문사항

0

138

1

Average Population 질문

0

130

1

Revising Aggregations - The Count Function 질문

0

104

1

Average Population of Each Continent 에대해서 질문

0

193

3

w3schools 에서 쿼리 작성 질문

0

159

1

INNER JOIN 할 때 NULL 값이 안보일 수도 있나요?

0

329

1