Menu
Coddy logo textTech

Grouping Part 2

Coddy SQL 여정의 기초 섹션에 포함된 레슨 — 72개 중 37번째.

WHERE 키워드는 각 레코드별로 조건문을 실행합니다. 예시:

SELECT * FROM table1
WHERE col1 > col2

col1 > col2 조건은 모든 레코드에서 실행되어 조건에 맞는지 확인합니다.

하지만 집계 결과를 필터링하고 싶다면 어떻게 해야 할까요? 예를 들자면 다음과 같습니다:

SELECT category, AVG(price) FROM table1
WHERE AVG(price) > 40
GROUP BY category

WHERE는 집계 결과를 확인할 수 없기 때문에 이것은 작동하지 않습니다. 이를 위해 HAVING 키워드가 있습니다. HAVING은 집계 조건으로 데이터를 필터링합니다.

SELECT category, AVG(price) FROM table1
GROUP BY category
HAVING AVG(price) > 40

이렇게 하면 평균 가격이 40보다 큰 모든 카테고리가 필터링됩니다.

HAVING 절과 WHERE 절을 함께 사용하려면 다음과 같이 작성합니다:

SELECT category, AVG(price) FROM table1
WHERE price > 25
GROUP BY category
HAVING AVG(price) > 40

이 구문은 먼저 레코드별로 순회하며 price가 25보다 큰 모든 레코드를 필터링한 다음, GROUP BY 절을 실행하고 평균 price가 40보다 큰 모든 category를 필터링합니다.

challenge icon

챌린지

중급

사용 가능한 테이블 및 열:

  • <strong>earthquakes</strong>: <strong>location</strong>, <strong>amplitude</strong>, <strong>period</strong>

리히터 규모는 지진의 규모를 측정하는 데 사용되는 로그 척도입니다.

모든 주요 지진에 대해 각 위치별 평균 규모를 반환해야 합니다.

주요 지진은 다음과 같이 정의됩니다:

  • 진폭(amplitude)이 1 이상입니다.
  • 파동의 주기(period)가 1분 이상입니다.

이번 챌린지에서는 다른 공식인 M = (A/T)<sup>2</sup> / T를 사용하며, 이는 M = ((A/T)*(A/T)) / T와 동일합니다.

주요 지진만 포함하여 각 위치의 location과 평균 규모를 반환하세요(열 이름은 avg_magnitude로 지정하세요). avg_magnitude가 1보다 큰 위치만 결과에 포함하세요.

결과는 소수점 2자리로 반올림하세요.

직접 해보기

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨