>데이터 베이스 >MySQL 튜토리얼 >GROUP BY 없이 SUM()을 사용하면 예기치 않은 결과가 반환되는 이유는 무엇입니까?

GROUP BY 없이 SUM()을 사용하면 예기치 않은 결과가 반환되는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-20 16:46:18502검색

Why Does Using SUM() Without GROUP BY Return Unexpected Results?

집계 함수를 사용하여 GROUP BY의 필요성 이해

제공된 예에서는 GROUP을 사용하지 않고 직원의 급여를 합산하는 당황스러운 시나리오를 보여줍니다. BY 절로 인해 원본 테이블이 출력으로 반환되었습니다. 이 수수께끼를 풀기 위해 SUM()과 같은 집계 함수를 사용할 때 GROUP BY의 목적과 역할을 자세히 살펴보겠습니다.

GROUP BY는 이름에서 알 수 있듯이 지정된 기준에 따라 행을 그룹화합니다. 이 그룹화는 개별 행이 아닌 행 그룹에 대해 계산을 수행하는 집계 함수를 사용할 때 특히 중요합니다. 우리의 경우 SUM() 함수는 각 고유 EmployeeID에 대한 MonthlySalary의 합계를 계산합니다.

GROUP BY를 사용하지 않으면 쿼리는 EmployeeID별로 그룹화하지 않고 모든 MonthlySalary 값의 합계를 계산하려고 시도합니다. 본질적으로 테이블의 모든 급여를 합산하여 하나의 거대한 풀로 취급하므로 잘못된 결과가 나올 수 있습니다.

다음 예를 살펴보세요.

SELECT EmployeeID, SUM(MonthlySalary)
FROM Employee;

이 쿼리의 결과 EmployeeID가 NULL이고 모든 급여의 합계가 포함된 단일 행이 됩니다. 이 결과는 직원별 급여 총액에 대해 필요한 정보를 제공하지 않기 때문에 의미가 없습니다.

쿼리에 GROUP BY를 포함하면 데이터베이스가 각 고유 EmployeeID에 대해 계산을 수행하도록 하여 의미 있는 결과를 얻습니다. 출력:

SELECT EmployeeID, SUM(MonthlySalary)
FROM Employee
GROUP BY EmployeeID;

이제 결과는 각 직원에 대한 개별 행으로 구성되어 해당 EmployeeID와 해당 합계가 표시됩니다. MonthlySalaries.

요약하자면, GROUP BY는 SUM()과 같은 집계 함수가 특정 행 그룹에 적용되도록 보장하여 의미 있는 데이터 집계를 허용합니다. 이는 의미 있는 통찰력을 쉽게 추출하고 결과의 잘못된 해석을 방지합니다.

위 내용은 GROUP BY 없이 SUM()을 사용하면 예기치 않은 결과가 반환되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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