sql - 如何从带有或条件和计数的sql中选择一些东西?
问题描述
表:
- 学生(SNUM:整数,SNAME:字符串,专业:字符串)
- 类(CNAME: STRING,MEETS_AT:STRING,ROOM:STRING,FID:INTEGER)
- 已注册(SNUM:整数,CNAME:字符串)
任务:
查找在 R128 房间开会或有五个或更多学生注册的所有班级的名称。
您将如何编写 SQL 语句以包含上述两个条件?我能够在两个 SQL 语句中做到这一点:
SELECT CNAME
FROM ENROLLMENT
GROUP BY CNAME
HAVING COUNT(CNAME) > 5
SELECT CNAME
FROM CLASS
WHERE ROOM = 'R128'
但是我怎样才能将这些合并到一个语句中呢?
解决方案
我会在where
子句中直接过滤来写这个:
select cname
from class c
where
room = 'R128'
or (select count(*) from enrolled e where e.cname = c.cname) > 5
推荐阅读
- c - 预处理器包括路径、宏等条目不可用
- amazon-web-services - 从存储桶策略中排除一个 Amazon S3 对象
- php - 允许用户更新他们的重力形式单个唯一条目
- shell - 在 Ubuntu 14.04 上启动(不是登录)时运行 shell 脚本
- android-studio - 我正在使用最新的 Android Studio,但是当我尝试拖放文本或按钮或蓝图上未显示的任何内容时
- android-fragments - 没有主构造函数,超类型初始化是不可能的
- javascript - 函数对象上的 javascript 闭包
- mysql - 从查询中获取不平衡行
- angular - 在 Angular 4 的所有组件中重用 HTML 元素
- ios - 什么时候 NSObject 的属性可以为空