Oracle多行查询(函数)

多行函数可以认为是操作多行数据的函数
 关于单行函数:单行查询整理
 1 取数据总和
 2 SQL> select sum(sal) from emp;
 3 取行数总和
 4 SQL> select count(*) from emp;
 5 取平均值
 6 SQL> select sum(sal)/count(*) 一,avg(sal) 二 from emp;
 7  
 8  
 9 SQL> --null 值 5. 组函数(多行函数)自动滤空;
10 SQL> select count(*),count(comm) from emp;
11   COUNT(*) COUNT(COMM)                                                                                                                                
12 ---------- -----------                                                                                                                               
13         14           4 
14 SQL> --嵌套滤空函数来屏蔽他的滤空功能
15 SQL> select count(*),count(nvl(comm,0)) from emp;
16   COUNT(*) COUNT(NVL(COMM,0))                                                                                                                         
17 ---------- ------------------                                                                                                                         
18         14                 14
19  
20 SQL> --多个列的分组
21 SQL> --group by :先按照第一个列分组;再按照第二列分组,以此类推
22 SQL> select deptno,job,sum(sal)
23   2  from emp
24   3  group by deptno,job
25   4  order by 1;
26  
27 SQL> --where和having的区别:where后面不能使用多行函数
28 SQL> --求10号部门的平均工资
29 SQL> select deptno,avg(sal)
30   2  from emp
31   3  group by deptno
32   4  having deptno=10;
33  
34     DEPTNO   AVG(SAL)                                                                                                                                 
35 ---------- ----------                                                                                                                                 
36         10 2916.66667
37  
38 SQL> group by的增强
39 select deptno,job,sum(sal) from emp group by rollup(deptno,job);

 

 
posted @ 2017-09-13 16:38  赵安之  阅读(1030)  评论(0编辑  收藏  举报