Oracle高级查询——分组查询

版权声明:转载请注明! https://blog.csdn.net/cyl101816/article/details/79901369


1.1分组函数

 1.定义:分组函数作用于一组数据,并对一组数据返回一个值。

 2.常用的分组函数:

   .AVG(求平均值)

   .SUM(求和)

   .MIN(求最小值)

   .MAN()

   .COUNT

   .WM_CONCAT(字符串拼加)

   例如:

   

1.2 分组函数与空值(null)

 在分组函数中使用NVL函数,可以使分组函数无法忽略空值。

 例如:

   

1.3 group by子句

 1.在select列表中为包含在组函数的列都应该包含在group by子句中   

  

 2.包含在group by 子句中的列不必包含在select列表中

  

 3.group by 后面不允许使用列的别名

  

 4.根据多个列分组

  根据多个列分组,即先根据group by后面的第一列进行分组,然后在根据后面的列依次分组。

  

 5.非法使用组函数

  所用包含于select列表中,而未包含于组函数中的列,都必须包含于group by子句中

  

1.4 having子句过滤分组

  1.用having子句来限定分组:1.行被分组了

               2.使用了分组函数

               3.符合having子句条件的组被显示出来

  

 2.where子句和having子句的区别:1.where子句中不能使用组函数

                  2.having子句中可以使用组函数

  

 3.在where和having子句可以通用的情况下,从SQL优化的角度来看,尽量使用where子句

1.5 在分组查询中使用order by子句

 

 使用order by 进行排序时可以按照列、别名、表达式、序号进行排序。

 例如:

 

1.6 分组函数的嵌套

 

1.7 group by 语句的增强

 

 break on deptno skip 2:相同的部门号只显示一次,不同的部门号之间跳过两行

1.8 SQL*PLUS报表功能

 报表包括:标题、页码、别名等 
 title col 15 ‘我的报表’ col 35 sql.pno //col 15 表示空15个列;sql.pno表示报表的页码 
 col deptno heading 部门号 
 col job heading 职位 
 col sum(sal)heading 工资总额 
 break on deptno skip 1

  

  

  



猜你喜欢

转载自blog.csdn.net/cyl101816/article/details/79901369