了解使用聚合函數進行GROUP BY 的需求
提供的範例展示了一個令人費解的場景,即在不使用GROUP的情況下對員工的薪資進行求和BY 子句導致原始表作為輸出傳回。為了解開這個謎團,我們深入研究 GROUP BY 在使用 SUM() 等聚合函數時的目的和作用。
GROUP BY,顧名思義,依照指定的條件將行分組。當使用對行組而不是單一行執行計算的聚合函數時,這種分組變得尤其重要。在我們的例子中,SUM() 函數計算每個唯一 EmployeeID 的 MonthlySalary 總和。
如果不使用 GROUP BY,查詢將嘗試計算所有 MonthlySalary 值的總和,而不會按 EmployeeID 將它們分組。這會產生錯誤的結果,因為它本質上會匯總表中的所有工資,將它們視為一個巨大的池。
採用以下範例:
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中文網其他相關文章!