一道SQL笔试题:使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位

S (SNO,SNAME,SDD,SAGE)

SNO,SNAME,SDD,SAGE

分别代表学号、学

员姓名、所属单位、学员年龄

C (CNO,CNAME )

CNO,CNAME

分别代表课程编号、课程名称

SC(SNO,CNO,SCORE )

SNO,CNO,SCORE

分别代表学号、

所选修的

课程编号、学习成绩

三个表的数据如下:

问题:

使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位

自己写的SQL:

SELECT SNO,SDD FROM S WHERE SNO IN
(
select sno from
(
SELECT SNO,COUNT(sc.cno)as countC FROM SC right JOIN C ON SC.CNO=C.CNO
GROUP BY SNO having COUNT(sc.cno)=(select COUNT(distinct c.cno) from c)
) a
);

时间: 2024-08-10 10:03:43

一道SQL笔试题:使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位的相关文章

这道SQL笔试题你会怎么写

最近面试了一些Senior BI的候选人,行业经验三年到七年不等,起初觉得这个Level的无需准备笔试题,碍于领导执念,就在真实项目中提取5道SQL题目,这里仅单说其中一道难度中等偏下的题目,抛开面试不谈,单看笔试的话几轮下来答题情况并不理想,至今没有发现有人能写出逻辑滴水不漏又性能最大化的脚本,难点的题目甚至还有交白卷的情况,如果看官觉得这仅仅是茴香豆的茴几种写法的问题就飘过吧,我想通过题目考察的并非只是SQL的熟练程度,相对而言更看重候选人对数据的敏感程度,以及脚本性能的优化能力,往深了说就

sql笔试题整理

题记:一直在写各种sql查询语句,最长的有一百多行,自信什么需求都可以接,可......,想了想,可能一直在固定的场景下写,平时也是以满足实际需求为目的,竟不知道应试的题都是怎么出的,又应该怎么做.遂找来一些笔试题来练习. 有四张表如下格式存储: --1.查询"001"课程比"002"课程成绩高的所有学生的学号: select t1.s# from (select s#,c#,score from sc where c# = 001) t1 inner join (

面试题 | 数据库笔试题集合·之·SQL语句(2)

第2章 SQL 语句 2.1 选择2.1.1 DELETE FROM S WHERE 年龄>60 语句的功能是( A ) A.从 S 表中彻底删除年龄大于 60 岁的记录B.S 表中年龄大于 60 岁的记录被加上删除标记C.删除 S 表D.删除 S 表的年龄列 2.1.2 使用什么命令可以清除表中所有的内容? ( CD ) A.INSERT  B.UPDATE C.DELETE D.TRUNCATE 2.1.3 以下哪个表不用于 mysql 的权限管理( D ) A.HOST         

几道 SQL 笔试题、面试题总结

2017-08-01 最近一个星期面试了四五家公司,面试的岗位是 Java 实习生.发现每家公司的 SQL 知识考察的内容都不尽相同,而且自己的 SQL 知识更是弱项.为此在菜鸟教程上复习了 SQL 知识,也总结了这几天来的面试题目. 笔试整理 1.给类似如下的表,要求用 SQL 求各班不同性别成绩超过80分的平均数: 表:test_avg NAME SCORE SEX CLASS A 66 男 1 B 86 女 2 C 90 男 1 D 82 女 2 考察知识点: 1)AVG() 函数.AVG

sql笔试题-1

在oracle下sql:比较巧妙地是group by 部分 1 select max(c.team) TEAM,min(c.y) B,max(c.y)+1 E 2 from 3 (select a.team,b.y from nba a,nba b 4 where a.team=b.team and a.y-b.y=1) c 5 group by (c.y-rownum) 6 order by B 在mysql下的sql:由于mysql没有rownum所以用了它的替代 1 SELECT cc.t

SQL笔试题:在BORROW表上建立一个触发器,完成如下功能:如果读者借阅的书名是"b002",就将该读者的借阅记录保存在BORROW_SAVE表中(注ORROW_SAVE表结构同BORROW表)

CREATE TRIGGER TR_BORROW ON BORROWAFTER INSERTASIF((SELECT I.BNO FROM INSERTED I) in(SELECT BNO FROM BOOKS WHERE BNAME='b002'))BEGININSERT BORROW_SAVESELECT * FROM INSERTED IPRINT '已经备份该记录'ENDELSEBEGINPRINT '未备份该记录'END

一道java笔试题

输入一串用空格隔开的数字串,对于数字串的奇数位按升序排序,偶数位按降序排序. 示例输入: 4 6 2 3 6 7 8 1 处理过程: 奇数位:4 2 6 8 升序排序结果: 2 4 6 8 偶数位:6 3 7 1 降序排序结果: 7 6 3 1 结果输出:2 7 4 6 6 3 8 1 demo: import java.util.*; public class Main { public static void main(String args[]) { Scanner scan = new 

从网易的一道多线程笔试题学习wait与notify来控制线程同步

题目 : 有三个线程分别打印A.B.C,请用多线程编程实现,在屏幕上循环打印10次ABCABC… package my.thread.test; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class PrintThreadExample { public static void main(String[] args) { PrintThreadExample

微软一道简单笔试题

题目非常简单,主要是读控制台输入数据有些忘了,所以折腾有点久.写的好像有点复杂,最终还是实现了.... public class MaxFont { int n; int p; int w; int h; public MaxFont(int n,int p,int w,int h){ this.n=n; this.p=p; this.w=w; this.h=h; } public static void main(String[] args) throws Exception { // TOD