mysql 完成年报业务,统计每年每门课程及格的学生人数和不及格的学生人数。
时间: 2024-03-26 14:35:21 浏览: 31
好的,以下是完成年报业务的 SQL 查询语句:
```sql
SELECT year, course, COUNT(CASE WHEN grade >= 60 THEN 1 ELSE NULL END) AS pass_count, COUNT(CASE WHEN grade < 60 THEN 1 ELSE NULL END) AS fail_count
FROM grades
GROUP BY year, course;
```
该查询语句使用了 GROUP BY 子句将成绩按照年份和课程进行分组,然后使用 COUNT 和 CASE WHEN 子句分别统计及格和不及格的学生人数,并将结果作为 pass_count 和 fail_count 的别名输出。
你需要根据实际情况修改表名和字段名,以及查询条件和其他细节。
相关问题
mysql写一个存储过程统计每年每门课程及格的学生人数和不及格的学生人数。
好的,以下是存储过程的代码:
```sql
DELIMITER $$
CREATE PROCEDURE `count_students`()
BEGIN
DECLARE year INT;
DECLARE course VARCHAR(50);
DECLARE pass_count INT;
DECLARE fail_count INT;
DECLARE cur CURSOR FOR SELECT DISTINCT year, course FROM grades;
OPEN cur;
SET pass_count = 0;
SET fail_count = 0;
read_loop: LOOP
FETCH cur INTO year, course;
IF (year IS NULL) THEN
LEAVE read_loop;
END IF;
SELECT COUNT(*) INTO pass_count FROM grades WHERE year = year AND course = course AND grade >= 60;
SELECT COUNT(*) INTO fail_count FROM grades WHERE year = year AND course = course AND grade < 60;
INSERT INTO student_count (year, course, pass_count, fail_count) VALUES (year, course, pass_count, fail_count);
END LOOP;
CLOSE cur;
END$$
DELIMITER ;
```
该存储过程首先使用游标获取所有不同的年份和课程,然后使用两个 SELECT 语句分别统计及格和不及格的学生人数,并将结果插入到一个名为 student_count 的表中,该表应该包含 year、course、pass_count 和 fail_count 四个字段。
你需要根据实际情况修改表名和字段名,以及存储过程中的其他细节。
查询出每门课的及格人数和不及格人数mysql实现
可以使用以下 MySQL 语句查询每门课的及格人数和不及格人数:
```
SELECT course_name,
SUM(CASE WHEN score >= 60 THEN 1 ELSE 0 END) AS pass_count,
SUM(CASE WHEN score < 60 THEN 1 ELSE 0 END) AS fail_count
FROM scores
GROUP BY course_name;
```
其中,`scores` 表是包含每个学生的成绩和所属课程的表。`course_name` 是课程名称。`pass_count` 是及格人数,通过使用 `CASE` 表达式计算出成绩大于等于 60 的人数。`fail_count` 是不及格人数,通过使用 `CASE` 表达式计算出成绩小于 60 的人数。`GROUP BY` 语句按照课程名称进行分组。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)