搞定SQL面试(3)

  • 38、查询各个课程及相应的选修人数;
select sc.cid,c.cname,count(distinct sid) as ‘stuCount‘ from sc sc,course c
where sc.cid=c.cid
group by sc.cid,c.cname;
  • 39、查询不同课程但成绩相同的学生的学号、课程号、学生成绩;
select distinct sc1.sid,sc1.cid,sc1.score from sc sc1,sc sc2
where sc1.cid!=sc2.cid and sc1.score=sc2.score
order by sc1.score asc;
  • 40、查询每门课程成绩最好的前两名;
select sc.cid,c.cname,sc.sid,s.sname,sc.score from student s,sc sc,course c
where s.sid=sc.sid and sc.cid=c.cid and sc.score in
(
    select sc2.score from sc sc2
    where sc2.cid=sc.cid
    order by sc2.score desc limit 2
)
order by sc.cid;
  • 41、统计每门课程的学生选修人数(超过10人的课程才统计)。

    要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列

select sc.Cid,COUNT(distinct Sid) as ‘StuCount‘ from SC sc
group by sc.Cid
having COUNT(distinct Sid)>=10
order by StuCount desc,sc.Cid asc
  • 42、检索至少选修两门课程的学生学号;
select distinct sc.sid from sc sc
group by sc.sid
having count(sc.cid)>=2;
  • 43、查询全部学生都选修的课程的课程号和课程名;
select sc.cid,c.cname from sc sc,course c
where sc.cid=c.cid
group by sc.cid,c.cname
having count(sc.sid)=(select count(distinct s.sid) from student s)
  • 44、查询没学过“叶平”老师讲授的任一门课程的学生姓名;
select s.sname from student s where s.sid not in
(
    select sc.sid from sc sc,course c,teacher t
    where sc.cid=c.cid and c.tid=t.tid and t.tname=‘叶平‘
)
  • 45、查询两门以上不及格课程的同学的学号及其平均成绩
select sc.sid,avg(ifnull(sc.score,0)) as ‘AvgScore‘ from sc sc
where sc.sid in
(select sc2.sid from sc sc2
where sc2.score<60
group by sc2.sid
having count(sc2.cid)>2
)
group by sc.sid;
  • 46、检索“004”课程分数小于60,按分数降序排列的同学学号;(很简单的一题)
select sc.Sid from SC sc
where sc.Cid=‘004‘ and sc.Score<60
order by sc.Score desc

文章转载自 https://www.cnblogs.com/edisonchou/p/3878135.html

欢迎加入数据分析交流群(加群备注博客园)

原文地址:https://www.cnblogs.com/linxiaochi/p/9650361.html

时间: 2024-11-05 20:45:42

搞定SQL面试(3)的相关文章

搞定SQL面试(1)

SQL是数据分析的第一技能,很多人转行数据分析,说自己学python,学R,但是却忽略了sql的重要性,去面试数据分析岗,专业点的公司,基本都会有sql的面试题,整理了下网上的sql面试题,分享给大家. 创建表,包括学生表,课程表,关系表,教师表 CREATE TABLE student ( sid INT, sname varchar(32), sage INT, ssex varchar(8) ) CREATE TABLE course ( cid INT, cname varchar(32

搞定SQL面试(2)

16.按平均成绩从低到高显示所有学生的"语文"."数学"."英语"三门的课程成绩, 按如下形式显示: 学生ID,语文,数学,英语,有效课程数,有效平均分: select t.sid as '学生ID', (select score from sc where sid=t.sid and cid='002') as '语文', (select score from sc where sid=t.sid and cid='003') as '数学',

搞定SQL

一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始 备份BACKUP DATABASE pubs TO testBack 4.说明:创建新表create

[算法总结] 13 道题搞定 BAT 面试——字符串

1. KMP 算法 谈到字符串问题,不得不提的就是 KMP 算法,它是用来解决字符串查找的问题,可以在一个字符串(S)中查找一个子串(W)出现的位置.KMP 算法把字符匹配的时间复杂度缩小到 O(m+n) ,而空间复杂度也只有O(m).因为"暴力搜索"的方法会反复回溯主串,导致效率低下,而KMP算法可以利用已经部分匹配这个有效信息,保持主串上的指针不回溯,通过修改子串的指针,让模式串尽量地移动到有效的位置. 具体算法细节请参考: 字符串匹配的KMP算法 从头到尾彻底理解KMP 如何更好

一篇文章搞定前端面试

本文旨在用最通俗的语言讲述最枯燥的基本知识 面试过前端的老铁都知道,对于前端,面试官喜欢一开始先问些HTML5新增元素啊特性啊,或者是js闭包啊原型啊,或者是css垂直水平居中怎么实现啊之类的基础问题,当你能倒背如流的回答这些之后,面试官脸上会划过一丝诡异的笑容,然后晴转多云,故作深沉的清一下嗓子问:从用户输入URL到浏览器呈现页面经过了哪些过程?如果你懂,巴拉巴拉回答了一堆,他又接着问:那网页具体是如何渲染出来的呢?如果你还懂,又巴拉巴拉的回答了一堆,他还会继续问:那你有哪些网页性能优化的经验

【搞定Jvm面试】 Java 内存区域揭秘附常见面试题解析

本文已经收录自笔者开源的 JavaGuide: https://github.com/Snailclimb ([Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识)如果觉得不错的还,不妨去点个Star,鼓励一下! Java 内存区域详解 如果没有特殊说明,都是针对的是 HotSpot 虚拟机. 写在前面 (常见面试题) 基本问题 介绍下 Java 内存区域(运行时数据区) Java 对象的创建过程(五步,建议能默写出来并且要知道每一步虚拟机做了什么) 对象的访问定位的两种

一篇搞定SQL语句

首先,你要知道SQL语句是常见数据库的查询语言,在关系型数据库里,表间关系有三种,通俗说就是爱情,亲情,友情,其中爱情在道德上说的是一对一,亲情就想到父母,你只有一个父亲或一个母亲,而一个当爹的就有可能有多个孩子,这就是一对多,而友情,你有多个朋友,你的某个朋友也有包括你在内的多个朋友,这就是多对多 其次,两张怎么建立上述的表间关系呢,比如一对多或多对多,有一种神奇的东西叫做外键,就一张表的列值在另外一张表的列有所对应,一对多就是一个外键,多对多就两个外键 最后,什么关系,什么操作,直接见实例就

一个类文件搞定SQL条件映射解析,实现轻量简单实用ORM功能

个人觉得轻简级的ORM既要支持强类型编码,又要有执行效率,还要通俗易懂给开发者友好提示,结合Expression可轻松定制自己所需要功能. 表达式解析代码: 1 using System; 2 using System.Collections; 3 using System.Collections.Generic; 4 using System.Data.Common; 5 using System.Linq; 6 using System.Linq.Expressions; 7 using S

Golang精编100题-搞定golang面试

Golang精编100题 能力模型 级别 模型 初级 primary 熟悉基本语法,能够看懂代码的意图:在他人指导下能够完成用户故事的开发,编写的代码符合CleanCode规范: 中级 intermediate 能够独立完成用户故事的开发和测试:能够嗅出代码的坏味道,并知道如何重构达成目标: 高级 senior 能够开发出高质量高性能的代码:能够熟练使用高级特性,开发编程框架或测试框架: 选择题 1.   [初级]下面属于关键字的是()A. funcB. defC. structD. class