首頁 >資料庫 >mysql教程 >為什麼沒有聚合函數的 SQL'GROUP BY”查詢會回傳錯誤?

為什麼沒有聚合函數的 SQL'GROUP BY”查詢會回傳錯誤?

DDD
DDD原創
2024-12-24 21:42:11750瀏覽

Why Does My SQL `GROUP BY` Query Without Aggregate Functions Return an Error?

沒有聚合函數的 GROUP BY 函數

理解 GROUP BY 操作可能具有挑戰性,特別是在排除聚合函數時。本文深入探討了這個概念及其意義。

在提供的範例中,您嘗試在沒有聚合函數的情況下對 EMP 表執行 GROUP BY 操作,導致出現多個錯誤。錯誤訊息「不是 GROUP BY 表達式」表示 GROUP BY 子句中指定的欄位必須與 SELECT 語句中選取的資料列相符。

要理解為什麼這是必要的,了解如何執行此操作至關重要GROUP BY 將多行轉換為單行。組合行時,需要指導處理具有不同值的欄位。因此,您在SELECT 語句中包含的每一列都必須:

  • 包含在GROUP BY 子句中
  • 用於聚合函數

例如,考慮下表:

Name | OrderNumber
------------------
John | 1
John | 2

如果僅對名稱執行GROUP BY,結果需要一個選擇 OrderNumber 的規則。選項包括:

  • 在GROUP BY 子句中包含OrderNumber: 這會產生兩行:

    • John | 1
    • 約翰 | 2
  • 使用聚合函數:

      MAX(OrderNumber):結果:John |2
    • MAX(OrderNumber):結果:John |2
    • MAX(OrderNumber):結果:John |2
  • MAX(OrderNumber):結果:John |2

MAX(OrderNumber):結果:John | >SUM(訂單編號):結果:約翰 | 3

透過匹配 SELECT 和 GROUP BY 語句中的列,Oracle 確保資料操作的一致性並避免歧義。

以上是為什麼沒有聚合函數的 SQL'GROUP BY”查詢會回傳錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn