oracle聚合函数使用----总结中
2009-09-10 23:31
253 查看
Oracle数据库中的函数很多,其分组函数和聚合函数是Oracle函数中比较常用的函数。
分组函数有Group by 函数,聚合函数有count()、sum()、avg()、max()、min()等等,这里做一些自己的总结,会不断的更新本文的内容。
CREATE TABLE STUDENT
(
STU_NAME VARCHAR2(10),
STU_NO NUMBER(5,0) PRIMARY KEY NOT NULL,
STU_AGE NUMBER(3,0)
)
1. select count(STU_AGE) from STUDENT
检索项目中只有聚合函数count(),则一定检索到一条数据,表STUDENT中没有数据,则结果为0,
表STUDENT中有数据,则为数据的件数。
2. select sum(STU_AGE) from STUDENT
检索项目中只有聚合函数sum(),则一定检索到一条数据,表STUDENT中没有数据,则结果为null,
表STUDENT中有数据,则为每条数据的STU_AGE的和。
使用数据库查看工具可能看不到null的效果,反而跟没有使用sum()函数检索到数据的结果一样,例如:
select STU_AGE from STUDENT 结果和select sum(STU_AGE) from STUDENT结果在数据库查看工具中一样,但是在java代码中可以看到区别,前面sql文检索到0条数据,后面的sql文检索到1条数据,但数据的结果为null。
在数据库查看工具中使用下面的方式区分:
select nvl(sum(STU_AGE),0) from STUDENT 结果为0,
nvl()函数是在检索结果中(存在至少一条数据),如果字段STU_AGE的值为NULL,则用0来替换NULL,
上面的sql文因为使用nvl后的显示结果为0,说明检索到一条数据了。
检索项目中不只有聚合函数sum(),eg:
select STU_NAME,sum(STU_AGE) from STUDENT group by STU_NAME
则存在检索不到数据的情况,例如表STUDENT中没有数据,检索到0件数据。
在数据库查看工具中使用nvl的方式:如下
select STU_NAME,nvl(sum(STU_AGE),0) from STUDENT group by STU_NAME
检索结果中不存在0,说明没有检索到数据。
为什么会产生上面的结果,我正在查询中?可能需要了解sql执行顺序机制,以及执行中什么时候终止。
3.聚合函数avg()、max()、min()的情况和sum()函数一样,自己可以试一下。
分组函数有Group by 函数,聚合函数有count()、sum()、avg()、max()、min()等等,这里做一些自己的总结,会不断的更新本文的内容。
CREATE TABLE STUDENT
(
STU_NAME VARCHAR2(10),
STU_NO NUMBER(5,0) PRIMARY KEY NOT NULL,
STU_AGE NUMBER(3,0)
)
1. select count(STU_AGE) from STUDENT
检索项目中只有聚合函数count(),则一定检索到一条数据,表STUDENT中没有数据,则结果为0,
表STUDENT中有数据,则为数据的件数。
2. select sum(STU_AGE) from STUDENT
检索项目中只有聚合函数sum(),则一定检索到一条数据,表STUDENT中没有数据,则结果为null,
表STUDENT中有数据,则为每条数据的STU_AGE的和。
使用数据库查看工具可能看不到null的效果,反而跟没有使用sum()函数检索到数据的结果一样,例如:
select STU_AGE from STUDENT 结果和select sum(STU_AGE) from STUDENT结果在数据库查看工具中一样,但是在java代码中可以看到区别,前面sql文检索到0条数据,后面的sql文检索到1条数据,但数据的结果为null。
在数据库查看工具中使用下面的方式区分:
select nvl(sum(STU_AGE),0) from STUDENT 结果为0,
nvl()函数是在检索结果中(存在至少一条数据),如果字段STU_AGE的值为NULL,则用0来替换NULL,
上面的sql文因为使用nvl后的显示结果为0,说明检索到一条数据了。
检索项目中不只有聚合函数sum(),eg:
select STU_NAME,sum(STU_AGE) from STUDENT group by STU_NAME
则存在检索不到数据的情况,例如表STUDENT中没有数据,检索到0件数据。
在数据库查看工具中使用nvl的方式:如下
select STU_NAME,nvl(sum(STU_AGE),0) from STUDENT group by STU_NAME
检索结果中不存在0,说明没有检索到数据。
为什么会产生上面的结果,我正在查询中?可能需要了解sql执行顺序机制,以及执行中什么时候终止。
3.聚合函数avg()、max()、min()的情况和sum()函数一样,自己可以试一下。
相关文章推荐
- Oracle分析函数/聚合函数使用总结 .
- oracle 11g使用deferred_segment_creation 延迟段创建特性时遇到的问题总结
- 用虚拟机Redhat Linux安装oracle 11G 并在winows上用PLSQL Developer使用数据库 总结
- Oracle lsnrctl命令使用总结
- Oracle Hash分区的使用总结
- Oracle 游标的使用总结
- oracle 日期时间函数使用总结
- Oracle游标使用总结
- Oracle聚合函数RANK和dense_rank的使用
- oracle使用小问题总结
- oracle数据导出工具sqluldr2使用总结
- oracle 使用总结 导入 ,导出,创建用户,授权等
- 在Linux中Oracle安装成功后,首次启动使用时,会出现的一些问题总结和解决办法
- 总结:虚拟机上添加一块新硬盘,并创建lvm裸设备给oracle使用的过程
- oracle 的使用 聚合函数的 max和min 使用
- oracle中使用聚合函数
- Java Web学习总结35:使用JDBC处理Oracle大数据
- Oracle 行转列(pivot、wm_concat、decode)使用总结(转载)
- ORACLE使用数据泵定时执行备份与问题总结
- Oracle 游标使用总结(好文章)