聚合函数:对表中的数据做一些统计分析,与其它函数的根本区别就是它们一般作用在多条记录上。
where字句操作的是原数据,作用在Group By 和Having 字句之前。
Having 对查出的原数据进行处理,放在Group By 之后,对数据做一个筛选。
max和min:可以用来统计任何数据类型,包括数字,字符和日期
eg:
SELECT MAX(sal) max_sal,MIN(sal) min_sal
FROM emp;
--查询最早最晚的入职时间,参数是日期
SELECT MAX(hiredate) max_hire,MIN(hiredate) min_hire
FROM emp;
--AVG和SUM:只操作数字类型,忽略null值
SELECT AVG(sal) avg_sal,SUM(sal) sum_sal
FROM emp;
--获得职员表中有多少认是有绩效的(忽略没有绩效的员工)
SELECT COUNT(comm) comm_person FROM emp;
==========================================-- NVL
SELECT AVG(NVL(comm,0)) avg_sal FROM emp;
=====================================子查询
大部分出现在WHERE子句中,为了给查询提供数据而首先执行的语句。
--查找和SHUN同职位的员工。
SELECT e.ename,e.job
FROM emp e
WHERE e.job = (SELECT job From emp WHERE ename ='SHUN');
--查找薪水比整个机构平均薪水高的员工
思路解析:查找员工的信息,条件:查出机构的平均薪水,要大于平均薪水。
SELECT deptno,ename,sal
FROM emp e
WHERE sal >(SELECT AVG(sal) FROM emp);