組函數 COUNT()(個數)、SUM()(求和)、AVG()(平均)、MAX()(最大值)、MIN()(最小值)。 分組統計 關於 WHERE 和 HAVING 的區別? · WHERE 子句:是在分組前使用,而且不能夠使用統計函數進行驗證,經過 WHERE 篩選後的數據才可以分組;· HAVIN ...
組函數
COUNT()(個數)、SUM()(求和)、AVG()(平均)、MAX()(最大值)、MIN()(最小值)。
· COUNT(*):會實際的統計出表中的數據量; · COUNT(欄位): |- 如果統計的欄位上不包含有 null,那麼與 COUNT(*)結果相同; |- 如果統計欄位上包含有了 null,null 不參與統計; · COUNT(DISTINCT 欄位):消除掉重覆數據後的統計。
分組統計
· 限制一:統計函數單獨使用時(沒有 GROUP BY 子句)只能夠出現統計函數,不能夠出現其它欄位。
正確的代碼:SELECT COUNT(empno) FROM emp ;
錯誤的代碼:SELECT COUNT(empno),ename FROM emp ;
· 限制二:使用統計查詢時(存在 GROUP BY 子句),SELECT 子句之中只允許出現統計函數與分組欄位, 其它的任何欄位都不允許出現。
正確的代碼: SELECT deptno,COUNT(empno) FROM emp GROUP BY deptno ;
錯誤的代碼: SELECT deptno,COUNT(empno),ename FROM emp GROUP BY deptno ;
· 限制三:統計函數在分組之中可以嵌套使用,但是嵌套之後的統計查詢之中,SELECT 子句不允許再出現 任何的欄位,包括分組欄位。
正確的代碼: SELECT MAX(COUNT(empno)) FROM emp GROUP BY deptno ;
錯誤的代碼: SELECT deptno,MAX(COUNT(empno)) FROM emp GROUP BY deptno ;
關於 WHERE 和 HAVING 的區別?
· WHERE 子句:是在分組前使用,而且不能夠使用統計函數進行驗證,經過 WHERE 篩選後的數據才可以分組;
· HAVING 子句:必須結合 GROUP BY 子句一起出現,是在分組後的過濾,可以使用統計函數。