sql 一段时间内相同的只统计一次_SQL——复习(常见面试题型)

fb8ece6ad9269d8e59e85f029a4177aa.png

用SQL解决业务问题的思路:

step1:翻译成大白话

step2:写出分析思路

step1:写出对应的SQL语句

题目的表来自创建的4个表:学生表、成绩表、课程表、教师表

ea0d1231f70ab6ce45d43f93e7d2c972.png

一、面试题型——简单查询

基本语句格式:

select 查询结果

from 从哪张表中查找数据

where查询条件;

1.查询姓“猴”的学生名单

1d03b30191bf525ea92e0e5fc9c674c8.png

2.查询姓名中最后一个字是“猴”的学生名单

c04c09aea69a66761be17b10406a6dab.png

3.查询姓名中带“猴”的学生名单

88e5c3e3ea943bc3daaaaf72144b6c81.png

4.查询姓“孟”老师的个数

07bf24ce86b713fb67db4bfa6b565899.png

二、面试题型——汇总分析

基本语句格式:

select 查询结果

from 从哪张表中查找数据

where查询条件

group by 分组

having 对分组结果指定条件

order by 对查询结果排序;

1.查询课程号为“0002”的总成绩

94a5debfbe20627a344a74b63011c211.png

2.查询选了课程的学生人数

7c2cccaad35a7ede4be128e7a24b3bf4.png

分组

3.查询各科成绩最高和最低的分

220115db894c23af985cbf8739473674.png

4.查询每门课程被选修的学生数

930e54ff9495fe6211eb6adb5588e83e.png

5.查询男生、女生人数

f254b5d2c4876e4eea6dfc2cd192afca.png

分组结果的条件

6.查询平均成绩大于60分学生的学号和平均成绩

280b2e6b6b791be6fb7834490df57f11.png

7.查询至少选修两门课程的学生学号

001e501aa9caa2d6761679b09416328d.png

8.查询同名同姓学生名单并统计同名人数

c0fe52d3f84dea95912f8abf65b4f52d.png

排序

9. 查询不及格的课程并按课程号从大到小排列

c7fed0ef15e003918320f6848da9c414.png

10.查询每门课程的平均成绩,结果按平均成绩升序排序,平均成绩相同时,按课程号降序排列

4f4c18df0a836c2efc782bdcc379e909.png

11.检索课程编号为“0004”且分数小于60的学生学号,结果按按分数降序排列

e33b7cf1653b647e0a9bd2dbd26d0ff8.png

12.统计每门课程的学生选修人数(超过2人的课程才统计)

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

cd1f176aded0496f9041551babb2dd5d.png

13.查询两门以上不及格课程的同学的学号及其平均成绩

05df89cff2ecc6dbeeff22db034cd9c2.png

三、面试题型——复杂查询

基本语句格式:

select 查询结果

from 从哪张表中查找数据

where查询条件(写入子查询)

group by 分组

having 对分组结果指定条件

order by 对查询结果排序

limit 从查询结果中取出指定行;

1.查询所有课程成绩小于60分学生的学号、姓名

483ddee1140ef7f8af0e09f90986d669.png

2.查询没有学全所有课的学生的学号、姓名

8040bae77ce88cf49ea17f0dc4d1d3d4.png

3.查询出只选修了两门课程的全部学生的学号和姓名

45e006fc7b4c88c7f2c8a2392e41a649.png

4.1990年出生的学生名单

5205ee64c217fd2ff5d0363cf3f261e1.png

分组取每组最大值、最小值,每组最大的N条记录

5.按课程号分组取成绩最大值所在行的数据

d47d9ad17e3b0f473c4df7c875b5757d.png

6.按课程号分组取成绩最小值所在行的数据

074f94827e058671ead9249932844832.png

7.查询各科成绩前两名的记录

ec06cad1675dd4aaa7dad30617bbdc8d.png

四、面试题型——多表查询

根据表的联结关系运用不同语句,常用内联结、左联结、右联结,case表达式

1.查询所有学生的学号、姓名、选课数、总成绩

ac0f0f556245fb85ec7aaeaee7e5c3e1.png

2.查询平均成绩大于85的所有学生的学号、姓名和平均成绩

6dc49bb6910e6294c325d69a1772c158.png

3.查询学生的选课情况:学号,姓名,课程号,课程名称

2fefffb7907ddfe9dedd6ad17a3cfdf8.png

4.查询出每门课程的及格人数和不及格人数

60ad8aa08b062be231f8cc4fabfda74d.png

5.使用分段[100-85],[85-70],[70-60],[‹60]来统计各科成绩,分别统计:各分数段人数,课程号和课程名称

8cca8280e524ad7525e5b7da09463811.png

6.查询课程编号为0003且课程成绩在80分以上的学生的学号和姓名

936aced2f737e4898b1fedf5ef5ae859.png

7.下面是学生的成绩表(表名score,列名:学号、课程号、成绩)

8cc5acb090494f1af8db5bda9e766d86.png

使用sql实现将该表行转列为下面的表结构

1ca79bade3aa59ec6cd2888e427ee532.png

8ba439f1e81b27b8e4c0f7223e6201ce.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值