
跟他学SQL
史上最弱万古流芳
这个作者很懒,什么都没留下…
展开
-
跟他学sql(第八天)
第二十五问 题目:查询每门课程被选修的学生数 分析:说实话,我实在是不太明白什么叫被选修的学生数,我们就当成是每一门课有多少学生选修了吧。 课程号 c_id 选修的学生数量 count(distinct(s_id)) SELECT score.c_id '课程号',c_name '课程名',COUNT(DISTINCT s_id) '人数' FROM score JOIN course ON score.c_id = course.c_id GROUP BY score.c_id 第二十六问原创 2020-07-02 21:25:05 · 131 阅读 · 0 评论 -
跟他学sql(第七天)
前言 最近感觉事情有一些多,所以sql停了几天,但是没有关西,今天我们继续来做sql 第二十二问 题目:使用分段[100-85],[85-70],[70-60],[<60]来统计各科成绩,分别统计各分数段人数,课程ID和课程名称。 分析:这道题和我们之前做过的题目相似。课程号和课程ID本来就是列名,但是分数段人数分散在行中,所以我们要进行行转列的操作,使用函数case when。 课程ID c_id 课程名 c_name 各分数段人数 sum() SELECT score.c_id,course.原创 2020-06-28 21:34:23 · 154 阅读 · 0 评论 -
跟他学sql(第六天)
前言 今天百闻牌更新了新卡包,我开了100多包开出10张ssr,看来是我人生巅峰了。 所以,今天我们还是来做sql。 第十九问 题目:查询学生的总成绩并进行排名 分析:来了来了来了,复习一下昨天学过的知识点。排名可以使用不连续的RANK(),连续的DENSE_RANK()和8.0增加的ROW_NUMBER()。这里我假设题目需要的是ROW_NUMBER()。 学号s_id 总成绩SUM(s_score) 排名ROW_NUMBER SELECT s_id '学号',SUM(s_score) '总分',RO原创 2020-06-24 21:35:49 · 138 阅读 · 0 评论 -
跟他学sql(第五天)
第十七问 题目:查询各科成绩最高分、最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率(及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90) 分析:说实话这道题我不会。 看来case when函数的使用还是有一些困难。 我们先来看答案吧: SELECT score.c_id '课程号', course.c_name '课程名', MAX(score.s_score) '最高分',MIN(score.s_score)原创 2020-06-23 21:40:34 · 289 阅读 · 0 评论 -
跟他学sql(第四天)
前言 昨天做的第十二问有一些问题,现在已经修改过了。 今天做了招银的笔试题备受打击,太难了,连输入都不会。 所以,还是来做sql吧。 第十五问 题目:检索"01"课程分数小于60,按分数降序排列的学生信息。 分析: 学生信息Student表中的所有字段 课程分数s_score 课程号c_id 需要Student表中的字段,一般要么使用join要么就where in,这道题需要排序,那么还是先给score表筛选排序,然后join连接吧。 SELECT Student.s_id,Student.s_name原创 2020-06-23 14:54:23 · 103 阅读 · 0 评论 -
跟他学sql(第三天)
第三天前言第十二问第十三问第十四问附加题 前言 好了,今天我们又来学sql。 第十二问 题目:查询和01号同学所学课程完全相同的其他同学的学号。 分析:看到完全相同,我们又想起之前张三老师上过的所有课,同样的这道题我们也采用同样的方式。 先查询出01学生所学过的所有课的c_id,以及课程数count(c_id),然后查询出score表中同样课程好的记录,然后按照学号聚合(group by 用 having),聚合之后看这些学生的课程数是否和01同学一致,如果一致说明学的课完全一样。 学号s_id 课程号c原创 2020-06-21 21:26:36 · 139 阅读 · 0 评论 -
跟他学sql(第二天)
前言 那么今天我们来学sql。 第七问 题目:查询学过编号为01的课程也学过编号为02课程的学生的学号、姓名。 分析: 课程号c_id 学号s_id 学生姓名s_name 学号和姓名在一张表中,学号和课程号在一张表中。 我们把问题拆成两个子问题: 编号为01的课程也学过编号为02课程的学生的学号 学号对应的姓名 对于第一个问题,我们把表score分别筛选出c_id = 01和c_id = 02的字段然后自联得到视图v1。 然后通过视图v1查询出学生姓名有两种方法,学生表和v1连接以及学生表s_id原创 2020-06-20 22:19:37 · 159 阅读 · 0 评论 -
跟他学Sql(第一天)
跟他学前言第一问第二问第三问第四问第五问第六问后记 前言 感觉自己sql语句部分实在薄弱,平时要用sql语句的时候都是先网上百度相似的,然后自己修修改改大半天才能写出来。 就我这么个水平被面试问到不是凉凉,所以决定还是跟着别人的脚步来学习写sql。正好看到csdn上有个老哥总结了面试题目类型和答案,就决定跟着他从零开始学习sql。 从零开始复习SQL( 连续带大家每天做几道题,进行足够的详解) 第一问 题目:查询课程编号为“01”的课程比“02”的课程成绩高的所有学生的学号(重点) 分析: 首先来看需要哪些原创 2020-06-19 16:37:12 · 256 阅读 · 0 评论