sql 语句创建存储过程,计算本科及以上学历的员工在总员工数中所占的比例
时间: 2024-03-10 07:47:20 浏览: 21
好的,以下是一条 SQL 语句,可以创建一个存储过程,计算本科及以上学历的员工在总员工数中所占的比例:
```
CREATE PROCEDURE calculate_ratio()
BEGIN
DECLARE total_count INT DEFAULT 0;
DECLARE bachelor_count INT DEFAULT 0;
SELECT COUNT(*) INTO total_count FROM employees;
SELECT COUNT(*) INTO bachelor_count
FROM employees
WHERE education_level IN ('Bachelor', 'Master', 'PhD');
SELECT CONCAT(ROUND(bachelor_count / total_count * 100, 2), '%') AS ratio;
END;
```
执行该 SQL 语句后,将创建一个名为 `calculate_ratio` 的存储过程。该存储过程中使用了 `SELECT` 语句,分别统计了总员工数和本科及以上学历的员工数,并计算了其所占的比例。其中,`DECLARE` 语句用于声明变量,`INT DEFAULT 0` 表示将变量初始化为 0。`SELECT ... INTO ...` 语句用于将查询结果保存到变量中。`ROUND()` 函数用于将计算结果保留两位小数。最后,使用 `CONCAT()` 函数将计算结果转换成字符串并返回。
每次执行存储过程时,将自动执行这些查询语句,并返回本科及以上学历的员工在总员工数中所占的比例。可通过以下语句调用该存储过程:
```
CALL calculate_ratio();
```