2015-11-15 06:30:02

阅读( 383 )

Student(S#,Sname,Sage,Ssex) 学生表

Course(C#,Cname,T#) 课程表

SC(S#,C#,score) 成绩表

Teacher(T#,Tname) 教师表

问题:

1、查询“001”课程比“002”课程成绩高的所有学生的学号;

select a.S#

from (select s#,score from SC where C#=’001′) a,

(select s#,score from SC where C#=’002′) b

where a.score>b.score and a.s#=b.s#;

2、查询平均成绩大于60分的同学的学号和平均成绩;

select S#,avg(score)

from sc

group by S# having avg(score) >60;

3、查询所有同学的学号、姓名、选课数、总成绩;

select Student.S#,Student.Sname,count(SC.C#),sum(score)

from Student left Outer join SC on Student.S#=SC.S#

group by Student.S#,Sname

4、查询姓“李”的老师的个数;

select count(distinct(Tname))

from Teacher

where Tname like ‘李%’;

5、查询没学过“叶平”老师课的同学的学号、姓名;

select Student.S#,Student.Sname

from Student

where S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname=’叶平’);

6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;

select Student.S#,Student.Sname

from Student,SC

where Student.S#=SC.S# and SC.C#=’001′and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#=’002′);

7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;

select S#,Sname

from Student

where S# in

(select S#

from SC ,Course ,Teacher

where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname=’叶平’ group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname=’叶平’));

8、查询所有课程成绩小于60分的同学的学号、姓名;

select S#,Sname

from Student

where S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60);

9、查询没有学全所有课的同学的学号、姓名;

select Student.S#,Student.Sname

from Student,SC

where Student.S#=SC.S#

group by Student.S#,Student.Sname having count(C#)

10、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;

select S#,Sname

from Student,SC

where Student.S#=SC.S# and C# in (select C# from SC where S#='1001');

11、删除学习“叶平”老师课的SC表记录;

Delect SC

from course ,Teacher

where Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='叶平';

12、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分

SELECT L.C# 课程ID,L.score 最高分,R.score 最低分

FROM SC L ,SC R

WHERE L.C# = R.C#

and

L.score = (SELECT MAX(IL.score)

FROM SC IL,Student IM

WHERE IL.C# = L.C# and IM.S#=IL.S#

GROUP BY IL.C#)

and

R.Score = (SELECT MIN(IR.score)

FROM SC IR

WHERE IR.C# = R.C#

GROUP BY IR.C# );

13、查询学生平均成绩及其名次

SELECT 1+(SELECT COUNT( distinct 平均成绩)

FROM (SELECT S#,AVG(score) 平均成绩

FROM SC

GROUP BY S# ) T1

WHERE 平均成绩 > T2.平均成绩) 名次, S# 学生学号,平均成绩

FROM (SELECT S#,AVG(score) 平均成绩 FROM SC GROUP BY S# ) T2

ORDER BY 平均成绩 desc;

14、查询各科成绩前三名的记录:(不考虑成绩并列情况)

SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数

FROM SC t1

WHERE score IN (SELECT TOP 3 score

FROM SC

WHERE t1.C#= C#

ORDER BY score DESC)

ORDER BY t1.C#;

15、查询每门功成绩最好的前两名

SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数

FROM SC t1

WHERE score IN (SELECT TOP 2 score

FROM SC

WHERE t1.C#= C#

ORDER BY score DESC )

ORDER BY t1.C#;

补充:

已经知道原表

year salary

——————

2000 1000

2001 2000

2002 3000

2003 4000

解:

select b.year,sum(a.salary)

from salary a,salary b

where a.year<=b.year

group by b.year

order by b.year;

在面试过程中多次碰到一道SQL查询的题目,查询A(ID,Name)表中第31至40条记录,ID作为主键可能是不是连续增长的列,完整的查询语句如下:

方法一:

select top 10 *

from A

where ID >(select max(ID) from (select top 30 ID from A order by ID ) T) order by ID

方法二:

select top 10 *

from A

where ID not In (select top 30 ID from A order by ID)

order by ID

分享给朋友:

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息:

面试题

数据分析sql面试必会6题经典_经典的SQL语句面试题相关推荐

  1. SQL面试必会50题(含答案和学习链接)

    最近在刷 sql 题,刷完了网上的 SQL 面试必会 50 题,现把我的答案和思路整理如下,供大家参考. 这是目录 一.创建四张表 二.SQL面试必会50题(不含答案) 三.SQL面试必会50题(含答 ...

  2. 数据分析sql面试必会6题经典_数据分析师SQL面试必备50题

    以下是SQL面试必备的经典的50道题目,每道题都有博主本人的解题思路和对应的SQL语句. 每道题的思路与答案均为博主本人主观理解,仅供参考. 环境:MySQL8.0 可视化工具:Navicat 1.查 ...

  3. 数据分析sql面试必会6题经典_面试数据分析会遇到的SQL题

    「1」说在前面 数据存放在数据库里,以表的形式分门别类. 宜家的商品(数据)放在宜家的仓库(数据库)里,以货位的形式分门别类. 在宜家,可以通过商品上的编号,查到商品在仓库的排号和位号,取到商品. S ...

  4. 数据分析sql面试必会6题经典_师兄大厂面试遇到这条 SQL 数据分析题,差点含泪而归!...

    作者 |  云祁 来源 | cnblogs.com/beiisbei/p/13269964.html 一.背景 师兄在面试时遇到了这条SQL题,回来我帮他参谋了下,觉得非常有意思,让我们一起来看看这道 ...

  5. 11道腾讯微信面试过程的随口题,道道经典,学到就是赚到

    11道腾讯微信面试过程的随口题,道道经典,你能答出几道题. 1. slab机制的原理 2. 协程机制与io多路复用 3. grpc与微服务的认知 4. 协程栈与汇编切换实现 详情:请点击视频观看. [ ...

  6. 蚂蚁金服面试题泄露,看完这十道面试必问真题,稳拿Offer

    最近编程讨论群有位小伙伴去蚂蚁金服面试了,以下是面试的真题,跟大家一起来讨论怎么回答. 1. 用到分布式事务嘛?为什么用这种方案,有其他方案嘛? 什么是分布式事务 谈到事务,我们就会想到数据库事务,很 ...

  7. 捡漏!蚂蚁金服面试题泄露,看完这十道面试必问真题,冲刺金九银十,稳拿大厂Offer!!

    前言 最近编程讨论群有位小伙伴去蚂蚁金服面试了,以下是面试的真题,跟大家一起来讨论怎么回答. 1. 用到分布式事务嘛?为什么用这种方案,有其他方案嘛? 什么是分布式事务 谈到事务,我们就会想到数据库事 ...

  8. 大厂面试必问!如何写出高效率的SQL

    前言 Spring框架自2002年诞生以来一直备受开发者青睐,它包括SpringMVC.SpringBoot.Spring Cloud.Spring Cloud Dataflow等解决方案.有人亲切的 ...

  9. 超硬核!腾讯运维岗面试必问11题,我说的,不信就来看看

    不要怕大公司面试,找到核心的高频问题,就解决了80%的面试题 请你谈谈进程和线程的区别? 1)进程 进程是程序的一次执行过程,是一个动态概念,是程序在执行过程中分配和管理资源的基本单位,每一个进程都有 ...

最新文章

  1. 使用Scala-IDE构建Maven项目
  2. Java Review - 并发编程_LockSupport
  3. 中国汽车融资租赁业运营前景与投资战略规划报告2022-2028年版
  4. [BUUCTF-pwn]——[BJDCTF 2nd]secret
  5. 关于ORM中只有XML没有映射实体的思考?期待大家的建议
  6. CentOS6网卡静态IP设置
  7. 【Java】探究Java方法的参数传递是值传递还是引用传递
  8. 如何让知识图谱告诉你“故障根因”
  9. SIGIR2020 | 基于GCN的鲁棒推荐系统研究
  10. java day37【web相关概念回顾 、web服务器软件:Tomcat 、Servlet入门学习】
  11. 《快速开发》通过Maven创建WebService项目Hello World!
  12. 近世代数--陪集--拉格朗日定理|G|=|H|·[G:H],传递性[G:H][H:K]=[G:K]
  13. php 微信签到功能,微信小程序实现签到功能
  14. 如何关闭IE浏览器安全设置检查功能
  15. 【电脑无法打开移动热点】——终极解决方法
  16. 北京自有服务器备案网站,北京服务器备案
  17. 6G八大关键技术(国泰君安团队)
  18. React学习笔记_从create-react-app学习webpack
  19. 进程,线程与多核,多cpu之间的关系
  20. 一般人我都不告诉他们

热门文章

  1. python写入excel怎么跨列居中_怎么才算工作里要求的“熟练使用office办公软件”?...
  2. App Store “我们未能完成您的购买”解决方法_Mac
  3. 【图论·强连通分量scc】hdu6072Logical Chain
  4. 山东科技大学 袁方(副教授)个人简介+告研究生书
  5. 解决红米 Note 4X root 后无法连接电脑问题
  6. linux终端输入lsblk无命令,Linux中lsblk命令详解
  7. phpstorm 快捷键设置php注释
  8. Hdf5开发笔记(一):hdf5介绍,在windows上编译msvc2015x64版本
  9. 笑到我了!杨超越杯编程大赛中那些脑洞大开的项目!
  10. 你对未来计算机有什么期待,一起脑洞大开:你希望未来手机增添什么功能