為什麼我不能在 HAVING 子句中使用聚合別名?
考慮以下 SQL 語句:
此程式碼產生一個錯誤,指示「col7」是無效的欄位名稱。為什麼會這樣呢?
原因在於SQL語句的執行順序。 HAVING 子句在 SELECT 子句之前計算。這表示當計算 HAVING 子句時,聚合函數 count(col2) 的別名「col7」尚未定義。
SQL 依照下列順序執行查詢:
因此,在給定的程式碼中,HAVING子句嘗試在 SELECT 子句中定義別名「col7」之前使用它。要解決此問題,您可以將“col7”替換為聚合函數本身:
這允許 HAVING 子句正確計算 col2 的聚合計數。
以上是為什麼不能在 SQL HAVING 子句中使用聚合別名?的詳細內容。更多資訊請關注PHP中文網其他相關文章!