聚合函數:sum,count,max,avg等,一般作用於多條記錄上。
通過group by可以將數據對屬於一組的數據起作用。
SELECT region, SUM(population), SUM(area)FROM bbc GROUP BY region
having子句,匯總之后再篩選
。作用於組,從而選擇滿足條件的組。
比如說下面這個,就不能使用where,因為已經分組了,就不能再對一條記錄進行操作了。
SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY region HAVING SUM(population)>1000000
having和group by都是基於聚合函數
進行操作的。
where子句,匯總之前篩選。作用於表,從而選擇滿足條件的元組。
兩者不沖突,可以一起使用
select count(*), person_id from table_a where sysdate between effective_start_date and effective_end_date group by person_id having count(*) > 1