我有两个表marks
和exams
。mysql增量变量使用案例
在marks
表我有studentid
,mark1
,mark2
和exams
针对不同的考试examid
- 对外商关键。
我想在一次查询中获得不同的学生ID和失败次数。
失败的条件是mark1+mark2 <50 or mark1<30
。对于例如如果一个学生有1个学生,在马克表中有15个参赛作品(15个考试),同一个学生在6个参赛作品中失败,所以我想在两列中得到'1'和'6'的结果,对于所有学生也是如此。对于这种情况,我写了查询中使用“案例”及以下
select
distinct t1.studentid,
(@arrear:=
case
when (t1.mark1+t1.mark2) <50 OR t1.mark1 < 30
then @arrear+1 else @arrear
end) as failures
from marks t1, exams t2,
(select @arrear := 0) r
where t1.examid = t2.examid group by t1.studentid;
给定,但是上面的查询未能给出正确的结果。我如何修改查询以获得正确的结果?
,因为你在'studentid'分组不需要'DISTINCT'这里。每个学生已经只有一行。 –
谢谢你的反应的CResults。你的查询给出了正确的结果。 –
非常好的一点@MarcusAdams。已删除独特! – CResults