如何修復 SQL GROUP BY 查詢中的「選擇清單中的列無效」錯誤?
Jan 23, 2025 am 01:11 AM修正 SQL GROUP BY 子句中的「列在選擇清單中無效」錯誤
使用 GROUP BY
的資料庫查詢需要仔細考慮 SELECT
列表。 所有選定的欄位必須進行聚合(使用 COUNT
、SUM
、MIN
、MAX
等函數)或明確包含在 GROUP BY
子句中。 不遵守此規則會導致錯誤「列在選擇清單中無效,因為它不包含在聚合函數或 GROUP BY 子句中」。
當 SELECT
清單包含既不聚合也不屬於 GROUP BY
分組的欄位時,就會出現此錯誤。
解決方案涉及調整 SELECT
清單或 GROUP BY
子句。
範例與解:
讓我們檢查一下這個有問題的查詢:
SELECT loc.LocationID, emp.EmpID FROM Employee AS emp FULL JOIN Location AS loc ON emp.LocationID = loc.LocationID GROUP BY loc.LocationID
登入後複製
發生錯誤是因為 emp.EmpID
既未聚合也不包含在 GROUP BY
子句中。 這裡有兩種修正方法:
解 1:聚合未分組的欄位
SELECT loc.LocationID, COUNT(emp.EmpID) AS EmployeeCount FROM Employee AS emp FULL JOIN Location AS loc ON emp.LocationID = loc.LocationID GROUP BY loc.LocationID
登入後複製
此修改後的查詢對每個位置的員工 (COUNT(emp.EmpID)
) 進行計數。
解決方案 2:將欄位加入 GROUP BY 子句
SELECT loc.LocationID, emp.EmpID FROM Employee AS emp FULL JOIN Location AS loc ON emp.LocationID = loc.LocationID GROUP BY loc.LocationID, emp.EmpID
登入後複製
這將按 LocationID
和 EmpID
將結果分組。 請注意,這將消除具有不同 LocationID
值的重複 EmpID
條目。 結果將單獨顯示每位員工的位置。
以上是如何修復 SQL GROUP BY 查詢中的「選擇清單中的列無效」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林
兩個點博物館:所有展覽以及在哪裡可以找到它們
3 週前
By 尊渡假赌尊渡假赌尊渡假赌

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林
兩個點博物館:所有展覽以及在哪裡可以找到它們
3 週前
By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)
