聚合函数: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