-2
SELECT SUM(salary)
FROM EMPLOYEE
WHERE SUM(salary) > 10000;
導致錯誤,我知道它需要被放在HAVING
子句。爲什麼聚合不允許在SQL條款
我的問題是爲什麼?正如在SQL語言設計中選擇此語法的根本原因一樣。
SELECT SUM(salary)
FROM EMPLOYEE
WHERE SUM(salary) > 10000;
導致錯誤,我知道它需要被放在HAVING
子句。爲什麼聚合不允許在SQL條款
我的問題是爲什麼?正如在SQL語言設計中選擇此語法的根本原因一樣。
WHERE子句中的查詢篩選行(之前,他們聚集)。
HAVING子句過濾行後,他們已經彙總。
即Sum,Avg,Count,Max,Min或任何聚合函數始終處於HAVING過濾器中。
「行基於濾波」被where子句中進行。
這通常是覆蓋在標準SQL基本知識,所以你可能需要閱讀一些背景,因爲這可以幫助你。
無論語法如何,您的查詢都沒有意義。那個查詢返回什麼?你想達到什麼目的? –
該查詢僅作爲示例。不是一個真正的問題,只是爲了更好地解釋我的問題,而不是說一些「只是使用」 – Abe