GROUP BY가 없는 MySQL 집계 함수: 이유와 방법
다음 경우 오류를 발생시키는 다른 관계형 데이터베이스 관리 시스템(RDBMS)과 달리 집계 함수는 GROUP BY 절 없이 SELECT 목록에 나타나며 MySQL에서는 이를 허용합니다. 이 동작은 개발자의 흥미를 끌었고 다음 질문으로 이어졌습니다.
MySQL은 왜 GROUP BY 없이 집계 함수를 허용합니까?
답변:
MySQL의 설계 철학은 SQL 표준을 넘어서는 확장된 기능을 허용합니다. GROUP BY 없이 집계 함수를 허용하는 것이 그러한 확장 중 하나입니다.
SELECT col1,col2,sum(col3) FROM tbl1과 같은 쿼리를 실행할 때 MySQL은 집계되지 않은 모든 열을 기준으로 행을 효과적으로 그룹화합니다(이 예제에서는 케이스, col1 및 col2). 그런 다음 단일 불확정 그룹에 대한 집계 함수(col3의 합계)의 결과를 반환합니다.
이전 버전의 MySQL에서는 기본적으로 이 동작을 허용했습니다. 그러나 MySQL 5.7.5부터 ONLY_FULL_GROUP_BY SQL 모드가 도입되어 더 엄격한 SQL 규정 준수를 적용하고 GROUP BY가 없는 집계 함수를 사용한 쿼리를 허용하지 않습니다. 이 모드는 필요에 따라 활성화하거나 비활성화할 수 있습니다. 기본적으로 MySQL 버전 8.0 이상에서는 활성화되어 있습니다.
추가 참고 사항:
위 내용은 GROUP BY가 없는 MySQL 집계 함수: 이유와 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!