SQL 函數「不是單組分群函數」解釋
在SQL 中,當使用MAX 等分組函數時,函數必須應用於單一資料組。這意味著,如果您想要尋找特定列的最大值,您也必須按該列對資料進行分組。
但是,如果您嘗試將分組函數應用於未分組的表達式,您將收到錯誤「不是單組組函數」。例如,假設您有一個名為 downloads 的表,其中包含客戶下載的欄位:
SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN
此查詢有效,因為 MAX 函數會套用於一組資料(透過 SSN 下載) 。但是,如果您嘗試將SSN 欄位新增至select 語句中,如下所示:
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN
您將收到「not a single-group group function」錯誤,因為SSN 欄位不包含在GROUP BY子句。這意味著 SQL 無法確定 SSN 列屬於哪一組數據,因此無法對其套用 MAX 函數。
要解決此錯誤,您有三個選項:
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN, TIME
這將為您提供每個唯一 SSN 和時間組合的最大下載總時間。
以上是為什麼我的 SQL 查詢返回'不是單組組函數”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!