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

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

DDD
DDD원래의
2024-11-06 11:07:02843검색

Why Can I Use Aggregate Functions Without GROUP BY in MySQL?

GROUP BY가 없는 MySQL의 집계 함수 처리

MySQL에서는 다른 관계형 데이터베이스 관리 시스템과 달리 집계 함수 사용이 가능합니다. GROUP BY 절을 지정하지 않고 SELECT 목록에 이러한 동작은 보다 제한적인 DBMS 플랫폼에 익숙한 개발자들 사이에서 의문을 제기했습니다.

MySQL의 이론적 근거

MySQL은 SQL에 대한 귀중한 확장이라는 점을 고려하여 설계상 이러한 유연성을 허용합니다. 기준. GROUP BY 없이 집계 함수를 사용하는 경우 반환된 결과는 전체 테이블에 대해 계산된 집계 값을 포함하는 단일 행을 나타냅니다. 이는 그룹화할 필요 없이 요약 정보를 원하는 시나리오에 유용할 수 있습니다.

예를 들어 다음 쿼리를 고려해보세요.

SELECT col1, col2, SUM(col3) FROM tbl1;

GROUP BY가 없으면 MySQL은 이를 단일 그룹으로 해석하고 다음과 같은 출력을 제공합니다.

col1    col2    SUM(col3)
-------------------------
(First row value of col1)    (First row value of col2)    (Sum of all col3 values)

ONLY_FULL_GROUP_BY의 제한 사항

집계 처리에 대한 MySQL의 관대한 접근 방식 GROUP BY가 없는 함수는 ONLY_FULL_GROUP_BY가 OFF로 설정된 상태로 도입되었습니다. MySQL 버전 5.7.5 릴리스에서는 ONLY_FULL_GROUP_BY가 기본적으로 활성화되어 이 동작이 제한됩니다.

ONLY_FULL_GROUP_BY를 활성화하면 집계 함수를 GROUP BY 절과 함께만 사용할 수 있으며 다음과 같은 경우 오류가 발생합니다. 그것이 없는 쿼리가 발견됩니다. 이러한 변경은 SQL 표준에 부합하며 데이터 일관성을 촉진합니다.

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

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