首页 > 解决方案 > 如何从带有或条件和计数的sql中选择一些东西?

问题描述

表:

任务:

查找在 R128 房间开会或有五个或更多学生注册的所有班级的名称。

您将如何编写 SQL 语句以包含上述两个条件?我能够在两个 SQL 语句中做到这一点:

SELECT CNAME
FROM   ENROLLMENT
GROUP BY CNAME
HAVING COUNT(CNAME) > 5
SELECT CNAME
FROM CLASS
WHERE ROOM = 'R128'

但是我怎样才能将这些合并到一个语句中呢?

标签: sqlcountsubquerywhere-clausehaving-clause

解决方案


我会在where子句中直接过滤来写这个:

select cname
from class c
where
    room = 'R128'
    or (select count(*) from enrolled e where e.cname = c.cname) > 5

推荐阅读