欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle高级查询实例讲解

程序员文章站 2022-03-31 10:11:50
1.分组查询 1.1分组函数 1.定义:分组函数作用于一组数据,并对一组数据返回一个值。 2.常用的分组函数: .AVG(求平均值) .SUM(求和) .MIN(求最小...

1.分组查询

1.1分组函数

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

2.常用的分组函数:

.AVG(求平均值)

.SUM(求和)

.MIN(求最小值)

.MAN()

.COUNT

.WM_CONCAT(字符串拼加)

例如:

Oracle高级查询实例讲解

1.2 分组函数与空值(null)

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

例如:

Oracle高级查询实例讲解

1.3 group by子句

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

Oracle高级查询实例讲解

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

Oracle高级查询实例讲解

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

Oracle高级查询实例讲解

4.根据多个列分组

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

Oracle高级查询实例讲解

5.非法使用组函数

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

Oracle高级查询实例讲解

1.4 having子句过滤分组

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

2.使用了分组函数

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

Oracle高级查询实例讲解

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

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

Oracle高级查询实例讲解

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

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

Oracle高级查询实例讲解

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

例如:

Oracle高级查询实例讲解