当前位置: 首页 > article >正文

SQL50题


文章目录

  • 项目地址
    • 1. .查询课程编号为“01”的课程比“02”的课程成绩高的所有学生的学号
    • 2. 查询没学过“张三”老师课的学生和学号
    • 3. 查询同时满足学过01和02课程的学生的学号和姓名(子查询)
    • 4. 查询没有学全所有课的学生学号和姓名
    • 5. 查询至少有一门课与学号为“01”的学生所学课程相同的学生的学号和姓名(EXISTS)
    • 6. 查询和“01”号同学所学课程完全相同的其他同学的学号(EXCEPT和NOT EXISTS)
    • 7 .查询不同老师所教不同课程平均分(3表的inner join)
    • 8. 查询所有课程成绩在2,3名的学生信息以及成绩(row_number() over)
    • 9.查询分段在100-85,85-70的各科成绩,统计分段的人数(case when)
    • 10.查询各个学生的各科成绩情况(case when的行转列)
    • 11. 使用PIVOT完成10题


项目地址

  • 教程作者:
  • 教程地址:
https://www.bilibili.com/video/BV1q4411G7Lw/?spm_id_from=333.788.videopod.episodes&vd_source=791e6deaa9c8a56b1f845a0bc1431b71&p=4
  • 代码仓库地址:
  • 所用到的框架和插件:
dbt 
airflow

1. .查询课程编号为“01”的课程比“02”的课程成绩高的所有学生的学号

  • 方法一:子查询
select a.SId from (select * from Score where CId = '01') as a 
inner join (select * from Score where CId = '02') as b
on a.SId = b.SId
where a.score>b.score
  • 方法二:CTE
with score01 as
(select * from Score where CId = '01')
, score02 as
(select * from Score where CId = '02')
select score01.SId,score01.CId from score01 inner join score02
on score01.SId = score02.SId
where score01.score> score02.score

2. 查询没学过“张三”老师课的学生和学号

with zs as
(select * from Score sc
left join Teacher t
on sc.c_id = t.t_id
where t_name = '张三'
)
select s.s_id,s.s_name from Student s
left join zs
on s.s_id = zs.s_id
where zs.t_name is null
  • 结果
s_id	s_name
07	郑竹
08	王菊

3. 查询同时满足学过01和02课程的学生的学号和姓名(子查询)

  • 交集
select a.s_id from
(select 

http://www.kler.cn/a/391006.html

相关文章:

  • CommandLineParser 使用
  • 使用Matlab建立随机森林
  • 如何在Python中实现一个简单的搜索引擎:从零开始的指南
  • 使用 Sparkle 实现 macOS 应用自定义更新弹窗
  • vwmare虚拟机繁忙的解决办法
  • PYNQ 框架 - 中断(INTR)驱动
  • ubuntu 20.04 NVIDIA驱动、cuda、cuDNN安装
  • Python 类私化有笔记
  • 【深度学习遥感分割|论文解读2】UNetFormer:一种类UNet的Transformer,用于高效的遥感城市场景图像语义分割
  • 量化交易系统开发-实时行情自动化交易-3.4.2.2.Okex交易数据
  • 从0开始搭建一个生产级SpringBoot2.0.X项目(十三)SpringBoot连接MongoDB
  • 请求接口时跨域问题详细解决方案
  • 前端开发调试之 PC 端调试
  • 使用 `RestTemplate` 获取二进制数据并返回 `byte[]`:解决方案与示例
  • Java 多态 (Polymorphism)详解
  • 智能社区服务小程序+ssm
  • MySQL数据库:SQL语言入门 (学习笔记)
  • ubuntu 20.04添加ros官方的软件源(解决下载ros软件包出现的E 无法定位软件包的问题)
  • ERP学习笔记-预处理eeglab
  • Transformer模型中的位置编码介绍
  • 群晖 Docker 容器文件夹出现未知用户 UID 1000
  • 开源TTS语音克隆神器GPT-SoVITS_V2版本地整合包部署与远程使用生成音频
  • 云计算在教育领域的应用
  • 数据库基础(10) . MySQL函数
  • 【MATLAB源码-第291期】基于matlab的AMI编码解码系统仿真,输出各个节点波形。
  • XML 现实案例:深入解析与应用