增加记录的值,直到达到某个平均值

时间:2014-02-03 16:45:33

标签: sql oracle plsql

所以我需要将最低工资提高15%,直到平均值> = 15000。 我知道我需要将avg放在循环中,但我不太清楚如何。我当前的代码也返回ORA-20000:ORU-10027:缓冲区溢出,限制为20000字节。

create or replace procedure avg_salary
as
v_avgsal number;
v_minsal number;
begin
select avg(salary),min(salary) into v_avgsal, v_minsal
from employees;
loop
 dbms_output.put_line(v_minsal);
 v_minsal:=v_minsal*1.15;
 exit when v_avgsal>=15000;
end loop;
end;
/

1 个答案:

答案 0 :(得分:1)

你应该重新计算循环中的平均值,否则它永远不会破坏。 我相信你可以实现那个返还薪水的总和和数(*)。

  1. 增加变量,将总和返还min_salary的15%。
  2. 除以行数。
  3. 第2步将返回新的平均值 - 将其与您想要打破循环的值进行比较。