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 중국어 웹사이트의 기타 관련 기사를 참조하세요!