> 데이터 베이스 > MySQL 튜토리얼 > 표준 SQL에서 GROUP BY 절 없이 HAVING 절을 사용할 수 있나요?

표준 SQL에서 GROUP BY 절 없이 HAVING 절을 사용할 수 있나요?

Linda Hamilton
풀어 주다: 2025-01-04 03:18:38
원래의
976명이 탐색했습니다.

Can a HAVING Clause Be Used Without a GROUP BY Clause in Standard SQL?

GROUP BY 없이 HAVING

SQL 표준에 따르면 HAVING 절은 일반적으로 그룹을 필터링하기 위해 GROUP BY 절과 함께 사용됩니다. 해당 그룹에서 수행된 집계 계산을 기반으로 한 행 수입니다. 그러나 일부 데이터베이스 시스템에서는 GROUP BY 없이 HAVING 절을 사용할 수 있습니다.

질문:

다음에 따라 GROUP BY 없이 HAVING 절을 사용할 수 있습니까? SQL 표준?

답변:

예, 표준 SQL에서는 GROUP BY 없이 HAVING 절을 사용할 수 있습니다. 그러나 이러한 쿼리의 동작은 사용 중인 데이터베이스 시스템에 따라 다릅니다.

MySQL 동작:

MySQL에서는 GROUP BY 없이 HAVING 절이 허용됩니다. 결과 집합의 첫 번째 행에는 집계된 열의 최대값이 있습니다. 이 동작은 일반적으로 HAVING 절이 있는 경우 GROUP BY 절이 필요한 SQL 표준에서 벗어납니다.

SQL 표준 해석:

SQL 표준은 HAVING 절은 GROUP BY 절에 의해 생성된 결과 집합에 대해 계산된 집계에 따라 작동합니다. GROUP BY 절이 없으면 HAVING 절이 어떤 행을 참조하는지 불분명해집니다.

따라서 SQL 표준에 따르면 GROUP BY가 없는 HAVING 절은 엄격하게 유효하지 않습니다. 그러나 MySQL과 같은 일부 데이터베이스 시스템에서는 호환성 이유로 이러한 쿼리를 허용할 수 있습니다.

유효한 표준 SQL 예:

SELECT 'T' AS result
FROM Book
HAVING MIN(NumberOfPages) < MAX(NumberOfPages);
로그인 후 복사

이 쿼리는 유효한 표준 SQL입니다. 다른 개수의 책이 있는 경우 'T' 값을 포함하는 열이 있는 단일 행을 반환합니다. 페이지.

결론:

GROUP BY 없이 HAVING 절을 사용하는 것이 특정 시나리오에서는 편리할 수 있지만 그러한 쿼리의 동작은 그렇지 않다는 점에 유의하는 것이 중요합니다. 표준화되어 있으며 데이터베이스 시스템마다 다를 수 있습니다. 안정적인 데이터베이스 간 호환성을 위해 집계 계산을 필터링할 때 HAVING과 함께 GROUP BY를 사용하는 것이 좋습니다.

위 내용은 표준 SQL에서 GROUP BY 절 없이 HAVING 절을 사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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