原文链接:https://blog.csdn.net/cizatu5130/article/details/100291347

oracle sum()聚合函数

2016-05-13 20:08:00 cizatu5130 阅读数 8

Oracle 的sum聚合函数的功能就是求和(这里暂时不讨论分析函数用法),一般用法不多讲,有个用法比较令人疑惑,曾经也踩过它的坑。示例如下:

declare

cursor t_cur is

select * from emp where empno = 7934 ;

v_count number;

begin

for tm_cur in t_cur loop

select sum(tm_cur.sal) into v_count from dept;

end loop;

dbms_output.put_line(v_count);

end;

这里的sum 求和的不是dept里面的字段,而是select 以外的其他值,刚开始看,还真一下子转不过来。再仔细想想,其实很简单,如下:

SQL> select 1 from dept ;

1

----------

1

1

1

1

SQL> select sum(1) from dept;

SUM(1)

----------

4

所以select sum(tm_cur.sal) into v_count from dept 的意思很简单,即结果为tm_cur.sal * (dept的行数);

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐