8/10

警钟长鸣——

复制空表格,仍然反复检查为何数据无法导入

表扬进入年级前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必须包含所有非聚合列

Janet paused