plsql的groupby怎么用
时间: 2023-07-08 19:08:14 浏览: 94
PL/SQL中的GROUP BY子句用于分组聚合查询结果集。它可以根据一个或多个列对查询结果进行分组,并计算每个组的聚合值,如SUM、AVG、MAX、MIN等。
下面是一个使用GROUP BY子句的示例:
```sql
SELECT department, AVG(salary) as avg_salary
FROM employees
GROUP BY department;
```
该查询语句将employees表按照department列分组,然后计算每个组的平均工资,并命名为avg_salary。最终结果将显示每个部门的平均工资。
在PL/SQL中,你可以将上述查询语句嵌入到一个存储过程或函数中,并使用游标或变量来处理结果集。例如:
```sql
CREATE PROCEDURE get_avg_salary_by_department IS
CURSOR c1 IS
SELECT department, AVG(salary) as avg_salary
FROM employees
GROUP BY department;
r1 c1%ROWTYPE;
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO r1;
EXIT WHEN c1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('Department ' || r1.department || ' has average salary of ' || r1.avg_salary);
END LOOP;
CLOSE c1;
END;
```
该存储过程使用游标c1查询每个部门的平均工资,并将结果逐行输出到控制台。你可以在PL/SQL开发工具中执行该存储过程,以查看每个部门的平均工资。
阅读全文