警钟长鸣——
复制空表格,仍然反复检查为何数据无法导入
表扬进入年级前100最多的班级
1 生成数据
可研究:excel一条命令,生成1000行连续自然数,然后随机英文名
这次chatgpt让我逃课
2 导入数据库
vscode集成度很高,点按钮自动导入
可研究:①为什么class有null产生
记住:
①db插件,铅笔状图标可直接修改设计表
②pandas库可转换excel为csv
3 写SQL语句
3.1计算学生总分
with 总成绩 as(
select
学号,
班级,
姓名,
sum(case when 科目=’语文’ then 成绩 else 0 end) *3遍 as total
from 学生表
left join
)
知识点
CTE:with…as() 称为CTE共同表表达式,用于临时表,可嵌套
左连接:left join以学生表为准,成绩如果多就让他多
3.2 计算所有学生排名
排名(
select
总成绩.学号,
总成绩.班级,
总成绩.姓名,
row_number()over(order by总分)
from 总成绩(不要引用错表格)
),
知识点
排序窗口函数:row_number()over(order by 字段) 用于排名
3.3 计算班级排名
select
count(排名)
from
join
order by
可优化:添加语文老师为班主任,只找到他一个人即代表该班的前100人数,而不是手工where A or B or C or D
小细节
select都要逗号,除了最后一个字段
select字段1,2,3,就是新建一张表格的列1,2,3
update update set 字段=新值 where xxx between 1 and 200
学会用IN (‘A’,’B’),写多值条件;区分 AND 与 OR
group by必须包含所有非聚合列