oracle

聚合函数:对表中的数据做一些统计分析,与其它函数的根本区别就是它们一般作用在多条记录上。

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

nvl函数可以作用的数据类型:
字符类型,日期类型。
NVL2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。

 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);

原文地址:https://www.cnblogs.com/21heshang/p/6580503.html