gpt4 book ai didi

mysql - PASS 和 FAIL 记录相同的测试

转载 作者:行者123 更新时间:2023-11-29 07:32:43 25 4
gpt4 key购买 nike

这里是 SQL 菜鸟。我尝试搜索但找不到这种情况。

对于特定的考试,学生可以有多个记录(通过、失败、未出现、放弃)。

results table

Student_ID Exam_ID Status Time_stamp

1 A Passed 2018-05-01
2 A Failed 2018-05-01
2 A Passed 2018-05-05
3 A No-Show 2018-05-01
3 A Failed 2018-05-05
4 A Passed 2018-05-01
4 A Failed 2018-05-25

我如何构造我的 SQL 查询以显示提供已通过考试的学生列表,如果他们未通过考试则按日期显示最新状态。

例如示例数据中student_id 1 = passed, student_id 2 = passed(一次pass记录= passed)student_id 3 = failed(无pass记录,未出现后为failed),student_id 4 = passed(一次pass考试记录 = 通过,稍后忽略失败)

到目前为止我已经试过了-

SELECT * 
FROM results
WHERE Status = "Passed"

但这显然不包括未通过的状态。

非常感谢您的帮助。

最佳答案

这是一种使用union all的方法:

select r.*
from results r
where r.status = 'Passed'
union all
select t.*
from results r
where not exists (select 1
from results r2
where r2.student_id = r.student_id and
r2.exam_id = r.exam_id and
r2.status = 'Passed'
) and
r.time_stamp = (select max(r2.time_stamp
from results r2
where r2.student_id = r.student_id and
r2.exam_id = r.exam_id
);

关于mysql - PASS 和 FAIL 记录相同的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50490268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com