Having--對分組信息進行過濾,因為分組之後的信息和原來的表信息沒有關係了,Having可以用的之後,出現在Group子句中的列,還有聚合函數 SELECT s_Age ,COUNT(s_ID)FROM dbo.Student GROUP BY s_Age--正確的 SELECT s_Age ,...
Having--對分組信息進行過濾,因為分組之後的信息和原來的表信息沒有關係了,
Having可以用的之後,出現在Group子句中的列,還有聚合函數
SELECT s_Age ,COUNT(s_ID)FROM dbo.Student GROUP BY s_Age--正確的
SELECT s_Age ,COUNT(s_ID)FROM dbo.Student GROUP BY s_Name--錯誤,Group By後面的列,必須要在select子句中列的列表中出現。
--對分組之後的年齡,分組,HAVING COUNT(s_Age) =1
SELECT s_Age ,COUNT(s_ID)FROM dbo.Student GROUP BY s_Age HAVING COUNT(s_Age) =1
下麵這個SQL,執行報錯:HAVING 子句中的列 'dbo.Student.s_Name' 無效,因為該列沒有包含在聚合函數或 GROUP BY 子句中。
SELECT s_Age ,COUNT(s_ID)FROM dbo.Student GROUP BY s_Age HAVING s_Name IS NOT NULL