【发布时间】:2019-07-28 18:18:10
【问题描述】:
我正在尝试选择班级中失败学生最多的老师的姓名。
select
Failed.section, max(Failed) as Failed_Class
from
(select
e.section, count(e.grade) * 100 / (select count(*)
from enrollment) as Failed
from
enrollment e
where
e.grade = 'D' or e.grade = 'F'
group by
e.section) as Failed;
这将返回部分 id 和该部分中不及格学生的百分比。
select
p.name
from
professors p, teaches t
where
p.ssn = t.ssn
and t.section in (select Failed.section, max(Failed) as Failed_Class
from
(select e.section, count(e.grade) * 100 / (select count(*) from enrollment) as Failed
from enrollment e
where e.grade = 'D' or e.grade = 'F'
group by e.section) as Failed);
当我执行 sub select 语句时,我得到了错误,我不知道如何解决这个问题?
我得到的错误是:
操作数应包含 1 列
【问题讨论】:
-
样本数据和期望的结果会有所帮助。并且从不在
FROM子句中使用逗号。 -
您使用的是哪个DBMS 产品? “SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加标签
-
我正在使用 mySQL