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

Susan Sarandon
풀어 주다: 2024-11-07 12:52:03
원래의
817명이 탐색했습니다.

Why Can MySQL Use Aggregate Functions Without a GROUP BY Clause?

MySQL 집계 함수: 왜 GROUP BY 절이 필요하지 않나요?

MySQL에서는 집계 함수를 SELECT 목록에서 동반 없이 사용할 수 있습니다. SQL Server와 같은 다른 RDBMS 제품과 달리 GROUP BY 절. 이 동작은 의도적인 것이며 표준에 대한 고유한 확장을 제공합니다.

예를 들어 "SELECT col1,col2,sum(col3) FROM tbl1;" 쿼리는 다음과 같습니다. 성공적으로 실행되어 col1 및 col2에 대한 첫 번째 행 값과 모든 col3 값의 합계가 포함된 단일 행을 반환합니다.

설명

MySQL에서는 이 동작을 허용합니다. GROUP BY 절이 없으면 모든 행이 암시적으로 함께 그룹화된다고 간주합니다. 결과적으로 전체 테이블이나 여러 행에 적용되는 집계 함수는 단일 암시적 그룹에서 작동합니다.

이전 동작

MySQL 버전 5.7.5 이전에는 이 행동에는 어떤 제한도 적용되지 않았습니다. 그러나 SQL 표준을 더욱 엄격하게 준수하기 위해 새로운 서버 SQL 모드인 ONLY_FULL_GROUP_BY가 도입되었습니다. 이 모드를 활성화하면 모든 집계 함수 사용에 GROUP BY 절이 필요합니다.

결론

MySQL의 GROUP BY 절 없이 집계 함수를 고유하게 처리하는 방식은 데이터 유연성을 제공합니다. 검색. 그러나 이 동작을 이해하고 ONLY_FULL_GROUP_BY를 활성화하여 SQL 표준을 준수하는 것을 고려하는 것이 중요합니다.

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

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