mysql增量变量用例
我有两个表mysql增量变量用例,mysql,case,Mysql,Case,我有两个表分数和考试 在分数表中,我有studentid,mark1,mark2和examid-不同考试的外键 我想在一次查询中获得不同的学生id和他们的失败次数 失败的条件是mark1+mark2试试这个。您不需要使用变量来帮助您 select m.studentid, sum(case when m.mark1 + m.mark2 < 50 or m.mark1 < 30 then 1 else 0 end) as failures from marks
分数
和考试
在分数
表中,我有studentid
,mark1
,mark2
和examid
-不同考试的外键
我想在一次查询中获得不同的学生id和他们的失败次数
失败的条件是
mark1+mark2试试这个。您不需要使用变量来帮助您
select
m.studentid,
sum(case when m.mark1 + m.mark2 < 50 or m.mark1 < 30 then 1 else 0 end) as failures
from
marks m inner join exams e
on
m.examid = e.examid
group by
m.studentid
选择
m、 学生,
总和(当m.mark1+m.mark2<50或m.mark1<30时,则为1,否则为0结束)作为故障
从…起
标记m内部连接e
在…上
m、 examid=e.examid
分组
m、 学生
case
语句计算结果是否失败,并返回1表示失败,0表示不失败。将studentid
编辑的该(组
的结果)相加,即可得出每个studentid的失败次数
哦,连接使两个表之间的连接更有效:)试试这个。您不需要使用变量来帮助您
select
m.studentid,
sum(case when m.mark1 + m.mark2 < 50 or m.mark1 < 30 then 1 else 0 end) as failures
from
marks m inner join exams e
on
m.examid = e.examid
group by
m.studentid
选择
m、 学生,
总和(当m.mark1+m.mark2<50或m.mark1<30时,则为1,否则为0结束)作为故障
从…起
标记m内部连接e
在…上
m、 examid=e.examid
分组
m、 学生
case
语句计算结果是否失败,并返回1表示失败,0表示不失败。将studentid
编辑的该(组
的结果)相加,即可得出每个studentid的失败次数
哦,这种连接使两个表之间的连接更加有效:)您不需要变量@arrear。您可以只使用查询获取您的信息
试试这个:
select
distinct t1.studentid,
sum(
case
when (t1.mark1+t1.mark2) <50 OR t1.mark1 < 30
then 1
else 0
end
) as failures
from marks t1, exams t2
where t1.examid = t2.examid group by t1.studentid;
选择
学生,
总数(
案例
当(t1.mark1+t1.mark2)时,不需要变量@arrear,只需查询即可获得信息
试试这个:
select
distinct t1.studentid,
sum(
case
when (t1.mark1+t1.mark2) <50 OR t1.mark1 < 30
then 1
else 0
end
) as failures
from marks t1, exams t2
where t1.examid = t2.examid group by t1.studentid;
选择
学生,
总数(
案例
何时(t1.mark1+t1.mark2)您不需要在此处使用DISTINCT
,因为您是在studentid
上分组的。您将只得到每个学生一行。谢谢您的回复。您的查询给出了正确的结果。您不需要在此处使用DISTINCT
,因为您是在studentid
上分组的。您将只得到每个学生一行。t感谢您的回复。您的查询给出了正确的结果。感谢Joe Taras的回复。您的查询给出了正确的结果。感谢Joe Taras的回复。您的查询给出了正确的结果。