珠科人何苦为难珠科人呢
各位看官要是高兴,点个赞再走呗
第1关:分数排名
任务描述
本关任务:编写SQL
查询来实现二种排名方式的分数排名。
score
表结构信息如下:
Id | Score |
---|---|
1 | 3.52 |
2 | 3.65 |
3 | 4.23 |
4 | 3.85 |
5 | 4.23 |
6 | 3.65 |
如果两个分数相同,则两个分数排名(Rank
)相同。
情况一:平分后的下一个名次是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。例:1、1、2、3、4、4。
情况二:排名是非连续的。例:1、1、1、4、4、6。
相关知识
略
答案:
--#请在此添加实现代码
--########## Begin ##########
select Score,(select count(Distinct Score)from score where score>=s.score)As Rank from score s order by score DESC;
select Score,(select count(Score)+1 from score where score>s.score)As Rank from score s order by score DESC;
--########## End ##########
第2关:体育馆的人流量
任务描述
本关任务:某市建了一个新的体育馆,每日人流量信息被记录在gymnasium
表中:序号 (id
)、日期 (date
)、 人流量 (visitors_flow
)。
请编写一个查询语句,找出人流量的高峰期。高峰期时,至少连续三行记录中的人流量不少于100
。
gymnasium
表结构数据如下:
id | date | visitors_flow |
---|---|---|
1 | 2019-01-01 | 58 |
2 | 2019-01-02 | 110 |
3 | 2019-01-03 | 123 |
4 | 2019-01-04 | 67 |
5 | 2019-01-05 | 168 |
6 | 2019-01-06 | 1352 |
7 | 2019-01-07 | 382 |
8 | 2019-01-08 | 326 |
9 | 2019-01-09 | 99 |
提示:每天只有一行记录,日期随着 id
的增加而增加。
相关知识
略
答案:
--#请在此添加实现代码
--########## Begin ##########
select distinct a.*
from gymnasium a,gymnasium b,gymnasium c
where a.visitors_flow>=100 and b.visitors_flow>=100 and c.visitors_flow>= 100 and
(
(a.id+1=b.id and b.id+1=c.id)or
(a.id-1=b.id and a.id+1=c.id)or
(a.id-1=c.id and a.id+1=b.id)or
(a.id-2=b.id and a.id-1=c.id)or
(a.id-1=b.id and a.id-2=c.id)
)
order by a.id
--########## End ##########
第3关:统计总成绩
任务描述
本关任务:计算每个班的语文总成绩和数学总成绩,要求科目中低于60
分的成绩不记录总成绩。
tb_score
结构数据:
name | chinese | maths |
---|---|---|
A | 89 | 98 |
B | 99 | 89 |
C | 55 | 66 |
D | 88 | 66 |
E | 55 | 66 |
F | 88 | 99 |
tb_class
表结构数据:
stuname | classname |
---|