要实现统计每年在校人数,可以使用 PL/SQL 编写一个存储过程。

首先,创建一个存储过程,命名为'count_students_by_year',接收一个年份作为参数,返回该年份的在校人数。

CREATE OR REPLACE PROCEDURE count_students_by_year(p_year NUMBER, p_count OUT NUMBER) IS
BEGIN
    SELECT COUNT(*) INTO p_count
    FROM students
    WHERE EXTRACT(YEAR FROM admission_date) = p_year;
END;
/

然后,调用这个存储过程来统计每年的在校人数。

DECLARE
    v_count NUMBER;
BEGIN
    FOR year IN 2010..2020 LOOP
        count_students_by_year(year, v_count);
        DBMS_OUTPUT.PUT_LINE('Year ' || year || ': ' || v_count || ' students');
    END LOOP;
END;
/

这个示例中,假设有一个名为'students'的表,其中包含了学生的入学日期(admission_date)字段。存储过程通过接收一个年份作为参数,并使用 EXTRACT 函数从入学日期中提取年份进行筛选,然后使用 COUNT 函数统计符合条件的学生数量。最后,通过 OUT 参数返回统计结果。

在调用存储过程时,使用一个 FOR 循环来遍历需要统计的年份范围。在每一次循环中,调用存储过程并输出统计结果。

请根据实际情况修改表名、字段名和年份范围。

PL/SQL 实现每年在校人数统计 - 完整示例代码

原文地址: https://www.cveoy.top/t/topic/o6zG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录