집 >데이터 베이스 >MySQL 튜토리얼 >GROUP BY 없이 SUM()을 사용하면 예기치 않은 결과가 반환되는 이유는 무엇입니까?
집계 함수를 사용하여 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!