SQL 中having 和where的區別
group by
在select 語句中可以使用group by 子句將行劃分成較小的組,然後,使用聚組函式返回每一個組的彙總資訊,另外,可以使用having子句限制返回的結果集。group by 子句可以將查詢結果分組,並返回行的彙總資訊Oracle 按照group by 子句中指定的表示式的值分組查詢結果。
在帶有group by 子句的查詢語句中,在select 列表中指定的列要麼是group by 子句中指定的列,要麼包含聚組函式
select max(sal),job emp group by job;
(注意max(sal), job 的job並非一定要出現,但有意義 )
查詢語句的select 和group by ,having 子句是聚組函式唯一出現的地方,在where 子句中不能使用聚組函式。
select deptno,sum(sal) from emp where sal>1200 group by deptno having sum(sal)>8500 order by deptno;
當在gropu by 子句中使用having 子句時,查詢結果中只返回滿足having條件的組。在一個sql語句中可以有where子句和having子句。having 與where 子句類似,均用於設定限定條件
where 子句的作用是在對查詢結果進行分組前,將不符合where條件的行去掉,即在分組之前過濾資料,條件中不能包含聚組函式,使用where條件顯示特定的行。
having 子句的作用是篩選滿足條件的組,即在分組之後過濾資料,條件中經常包含聚組函式,使用having 條件顯示特定的組,也可以使用多個分組標準進行分組。
查詢每個部門的每種職位的僱員數
select deptno,job,count(*) from emp group by deptno,job;
如果你對何時應該使用WHERE,何時使用HAVING仍舊很迷惑,請遵照下面的說明:
WHERE語句在GROUP BY語句之前;SQL會在分組之前計算WHERE語句。
HAVING語句在GROUP BY語句之後;SQL會在分組之後計算HAVING語句。
相關文章
- SQL中Having與Where的區別SQL
- SQL中 where 子句和having子句中的區別SQL
- MySQL之Where和Having的區別MySql
- where和having的區別小結
- SQL中where和on的區別SQL
- oracle之group by,having和where的區別Oracle
- 資料庫中where與having的區別資料庫
- mysql的having和where有什麼區別MySql
- SQL分組中WHERE和HAVING的異同SQL
- having和where
- SQL join中on與where區別SQL
- MyBatis中的<where>標籤和where子句的區別MyBatis
- SQL JOIN 中 on 與 where 有何區別SQL
- 【SQL】Oracle SQL join on語句and和where使用區別SQLOracle
- SQL中on條件與where條件的區別[轉]SQL
- sql中的group by 和 having 用法解析SQL
- 深入Oracle的left join中on和where的區別詳解Oracle
- SQL中IN和EXISTS用法的區別SQL
- sql中UNION和UNION ALL的區別SQL
- Mysql-left join on後接and,和where的區別MySql
- SQL Server中count(*)和Count(1)的區別SQLServer
- truncate和不帶where子句的delete, 以及drop區別delete
- MYSQL和SQL的區別MySql
- whereRaw 與 where (\DB::raw ()) 的區別
- SQL語句中 left join 後用 on 還是 where,區別大SQL
- 在Pandas中 SQL操作:SQLAlchemy和PyMySQL的區別MySql
- sql語句中#{}和${}的區別SQL
- SQL中儲存過程和函式的區別SQL儲存過程函式
- left join,right join,inner join的條件on和where的區別
- SQL Server中內連線和外連線的區別SQLServer
- SQL語句中exists和in的區別SQL
- SQL語句中not in 和not exist的區別SQL
- v$sql和v$sqlarea的區別SQL
- mysql中!=和is not的區別MySql
- JavaScript中for in 和for of的區別JavaScript
- mysql中“ ‘ “和 “ ` “的區別MySql
- Js中for in 和for of的區別JS
- JavaScript中==和===的區別JavaScript