> 데이터 베이스 > MySQL 튜토리얼 > SQL의 WHERE와 HAVING: 언제 각 절을 사용합니까?

SQL의 WHERE와 HAVING: 언제 각 절을 사용합니까?

Patricia Arquette
풀어 주다: 2025-01-14 17:26:44
원래의
640명이 탐색했습니다.

WHERE vs. HAVING in SQL: When to Use Each Clause?

SQL의 HAVING 절과 WHERE 절의 차이점에 대한 자세한 설명

SQL에서 HAVINGWHERE 키워드는 데이터를 필터링하는 데 사용되지만 기능은 다릅니다. 둘 다 조건부 선택에 사용되지만 GROUP BY 절의 유무에 따라 적용이 달라집니다.

WHERE 절

WHERE 절은 집계 작업 전에 실행되며 해당 값을 기반으로 특정 행을 선택합니다. 예를 들어, 다음 쿼리는 20세 이상의 모든 학생 이름을 검색합니다.

<code class="language-sql">SELECT Name
FROM Students
WHERE Age > 20;</code>
로그인 후 복사

HAVING 절

반대로 HAVING 절은 집계 함수를 적용한 후 실행됩니다. 집계된 값을 기준으로 행 그룹을 필터링합니다. 이는 집계된 결과를 검사해야 하는 시나리오에 유용합니다.

예를 들어 다음 쿼리는 각 도시의 평균 학생 연령을 검색한 후 결과를 필터링하여 평균 연령이 25세보다 큰 도시만 표시합니다.

<code class="language-sql">SELECT City, AVG(Age) AS AvgAge
FROM Students
GROUP BY City
HAVING AvgAge > 25;</code>
로그인 후 복사

주요 차이점

HAVINGWHERE의 근본적인 차이점은 실행 시간입니다. WHERE은 집계 전 행을 필터링하고, HAVING은 집계 후 그룹을 필터링합니다. 즉, HAVING는 집계된 값의 조건을 확인하는 데 사용되고, WHERE은 개별 행 값의 조건을 확인하는 데 사용됩니다.

샘플 데이터가 포함된 다음 표를 고려하세요.

City Age
Boston 22
Boston 25
New York 28
New York 30
Los Angeles 23
Los Angeles 29

WHERE를 사용한 쿼리:

<code class="language-sql">SELECT City, COUNT(*) AS Count
FROM Students
WHERE Age > 25;</code>
로그인 후 복사

출력:

City Count
New York 2

HAVING을 사용한 쿼리:

<code class="language-sql">SELECT City, COUNT(*) AS Count
FROM Students
GROUP BY City
HAVING COUNT(*) > 1;</code>
로그인 후 복사

출력:

City Count
Boston 2
New York 2

이 예에서 WHERE 절은 25세 이상의 학생 수를 검색하고, HAVING 절은 각 도시에서 학생이 1명 이상인 도시를 검색합니다.

위 내용은 SQL의 WHERE와 HAVING: 언제 각 절을 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿