时间:2021-07-01 10:21:17 帮助过:5人阅读
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的行数);
oracle sum()聚合函数
标签:tin count 分析函数 ref top targe open bar line