数据库sql题目 25
1Findthemaximumandminimumenrollmentacrossallsections,consideringonlysectionsthathadso...
1Find the maximum and minimum enrollment across all sections, considering only sections that had some enrollment, don't worry about those that had no students taking that section 通过所有的表 section 找到最大和最小登记,但是只考虑有登记部分的 section,而且不必考虑没有学生选
3. As in in Q1, but now also include sections with no students taking them; the enrollment for such sections should be treated as 0. Do this in two different ways (and create require data for testing) 在 1题的基础上,加入条件:还包括部分没有登记学生的 section,而且这种登记视为 0,现在请使用两种方法来实现
1) Using a scalar subquery 使用标量子查询
2) Using aggregation on a left outer join (use the SQL natural left outer join syntax) 使用聚合在左外连接(使用 SQL 自然左外连接)
takes表包括
[ID],[course_id] ,[sec_id] ,[semester] ,[year] ,[grade]
section表包括
[course_id] ,[sec_id] ,[semester] ,[year] ,[building] ,[room_number] ,[time_slot_id
各位大佬帮帮忙啊 展开
3. As in in Q1, but now also include sections with no students taking them; the enrollment for such sections should be treated as 0. Do this in two different ways (and create require data for testing) 在 1题的基础上,加入条件:还包括部分没有登记学生的 section,而且这种登记视为 0,现在请使用两种方法来实现
1) Using a scalar subquery 使用标量子查询
2) Using aggregation on a left outer join (use the SQL natural left outer join syntax) 使用聚合在左外连接(使用 SQL 自然左外连接)
takes表包括
[ID],[course_id] ,[sec_id] ,[semester] ,[year] ,[grade]
section表包括
[course_id] ,[sec_id] ,[semester] ,[year] ,[building] ,[room_number] ,[time_slot_id
各位大佬帮帮忙啊 展开
2个回答
2018-07-29 · 知道合伙人软件行家
关注
展开全部
答案为B
其实从语法就可以排除的:where字句中不能出现聚合函数所以AD排除;出现group by字句,则select字句中查询的列要么分组要么聚合,C选项中姓名列既没分组也没在聚合函数中。
下面说说思路:
想要查询只选修1门课的学生,可以先查出每个学生选了多少门课(按学生分组group by),然后挑选出选课数为1的(对分组后得到的结果进行筛选,having)
如果还有问题请追问。
其实从语法就可以排除的:where字句中不能出现聚合函数所以AD排除;出现group by字句,则select字句中查询的列要么分组要么聚合,C选项中姓名列既没分组也没在聚合函数中。
下面说说思路:
想要查询只选修1门课的学生,可以先查出每个学生选了多少门课(按学生分组group by),然后挑选出选课数为1的(对分组后得到的结果进行筛选,having)
如果还有问题请追问。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询