我最近开始学习PL / SQL,我发现自己遇到了这个问题。我有一个光标,其中包含通过另一个表中的代码选择的特定人员的数据。我用这个人的工资拿出所有月份并输出它们。现在我需要制作所有工资的平均值。我怎么做 ?我可以从光标中仅获取该列。我可以计算行数并将该计数的工资总额除以我可以进行另一次选择但是有更快的方法吗?
答案 0 :(得分:1)
您不需要游标将平均工资作为单一值。您需要使用聚合函数。即使你需要一个光标,让我们说,将数据返回给调用代码,你仍然使用聚合函数来计算平均值并返回它的光标。
这只是一个例子
Declare
v_avgSal employees.salary%TYPE;
Begin
SELECT AVG(salary) into v_avgSal
FROM employees
WHERE employee_id = 10 And
(payDate >= To_Date('01012015', 'MMDDYYYY') AND payDate < To_Date('01012016', 'MMDDYYYY'));
Dbms_Output.Put_Line(v_avgSal);
End;