oracle学习笔记(聚合函数以及group by 和having 的用法)

                                                                                                           今天学习了聚合函数以及group by 的用法。

      oracle的聚合函数:

count(*|列)     --- 统计列的数目 例select  count (*) from emp where empno<100;    忽略空值

avg(数值型列)---返回列的平均值(如求平均薪水)select  avg (sal ) from emp ;

sum(数值型列)-- 返回列中数值的求和

max(列)            --求列中最大的数据

min(列)            --- 求列中最小的数据

注意: 聚合函数是返回单行数据,不能直接和表中其他的列一起查询

例: select empno ,empname,count(*),avg(sal) from emp ;   --这个查询是无效的 


---group by  分组  把一列中具有相同值得数据当成一组数据进行分组,最后返回一条数据,分组函数忽略空值(隐含是升序排列的)

!注意:  如果select 语句后面有组合函数(聚合函数) 那么 select  后面的列必须是组函数或者出现在group by 中的字段。但是group by 后面加的字段可以任意


having 的用法: having 是对group by 分组之后的数据进行筛选用的,弥补where 条件查询优先级高于group by 的缺陷

优先级:where > group by > having  (为什么会有having的原因,以及having 和where  的区别) 

标准的sql 语句:

select 

from

where

group by

having 

结论:
1.WHERE 子句用来筛选 FROM 子句中指定的操作所产生的行。
2.GROUP BY 子句用来分组 WHERE 子句的输出。
3.HAVING 子句用来从分组的结果中筛选行。

你可能感兴趣的:(大学,oracle)