>  기사  >  데이터 베이스  >  GROUP BY 절 없이 MySQL 집계 함수를 사용할 수 있는 이유는 무엇입니까?

GROUP BY 절 없이 MySQL 집계 함수를 사용할 수 있는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-05 19:45:02603검색

Why Can MySQL Aggregate Functions Be Used Without a GROUP BY Clause?

MySQL 집계 함수: GROUP BY 문제

MySQL에서는 GROUP BY를 명시적으로 정의하지 않고도 SELECT 문에서 집계 함수를 사용할 수 있습니다. 절, SQL Server와 같은 다른 데이터베이스 시스템에서는 오류가 발생할 수 있습니다. 이 동작은 MySQL이 그러한 쿼리 실행을 허용하는 이유에 대한 의문을 제기합니다.

MySQL 디자인

MySQL은 확장으로 GROUP BY 절 없이 SELECT 목록에서 집계 함수를 허용합니다. SQL 표준에. 그룹화하지 않으면 데이터베이스는 불확실한 단일 그룹을 가정하고 해당 그룹에 대해 모든 이름 값을 선택할 수 있습니다. 이 동작을 사용하면 전체 테이블에서 데이터를 더 쉽게 집계할 수 있습니다.

예제 쿼리

다음 쿼리를 고려하세요.

SELECT name, MAX(age) FROM t;

GROUP BY 없이 절을 사용하면 MySQL은 처음 발견된 이름 값과 전체 테이블의 최대 age 값이 포함된 단일 행을 반환합니다.

ONLY_FULL_GROUP_BY 설정

MySQL 버전 5.7.5 이상 GROUP BY 절 없이 집계 함수의 처리를 제어하는 ​​ONLY_FULL_GROUP_BY 설정을 도입했습니다. 이 설정을 활성화하려면 집계 함수 사용에 GROUP BY 절이 있어야 합니다.

결론

GROUP BY 절 없이 집계 함수를 허용하는 MySQL의 동작은 다음에 대한 유연성을 제공합니다. 전체 테이블에 걸쳐 데이터를 집계합니다. 그러나 ONLY_FULL_GROUP_BY 설정을 사용하면 집계를 더욱 제어하기 위해 SQL 표준을 더욱 엄격하게 준수할 수 있습니다.

위 내용은 GROUP BY 절 없이 MySQL 집계 함수를 사용할 수 있는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.