HAVING은 먼저 그룹을 그룹화한 다음 레코드를 필터링하고, WHERE는 집계 전에 레코드를 필터링합니다. 즉, GROUP BY 절과 HAVING 절 이전에 작동하고 HAVING 절은 집계 후 그룹 레코드를 필터링합니다.
에서 사용하는 객체 가 다릅니다. WHERE 절은 테이블과 뷰에서 작동하고 HAVING 절은 그룹에서 작동합니다. WHERE는 그룹화 및 집계 계산 전에 입력 행을 선택하고(따라서 집계 계산에 들어갈 행을 제어함), HAVING은 그룹화 및 집계 후 그룹화된 행을 선택합니다. 따라서 WHERE 절에는 집계 함수 가 포함될 수 없습니다. 집계 함수를 사용하여 집계 작업에 입력되는 행을 확인하는 것은 의미가 없기 때문입니다. 대조적으로 HAVING 절에는 항상 집계 함수가 포함됩니다. (엄밀히 말하면 집계를 사용하지 않고 HAVING 절을 작성할 수 있지만 이는 시간 낭비입니다. WHERE 단계에서 동일한 조건을 더 효율적으로 사용할 수 있습니다.) 예:
select * from tablename where id > ; 1; 및
ID가 > 1인 테이블 이름에서 *를 선택합니다
쿼리의 결과에는 차이가 없습니다. 두 문장으로 요약하기 위해 had
를 사용하는 것은 권장되지 않습니다.
WHERE 문은 GROUPBY 문 앞에 옵니다. SQL은 그룹화하기 전에 WHERE 문을 계산합니다.
HAVING 문은 GROUPBY 문 뒤에 옵니다. SQL은 그룹화 후에 HAVING 문을 계산합니다.
위 내용은 SQL 문에서 where와 have의 차이점 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!