_FFF航海日志
草帽一伙面向海上夕阳和之国樱花下的草帽团草帽团在海边休憩

DREAM · ADVENTURE · FREEDOM

Hi, _FFF!

心向大海,自由启航。

翻开航海日志

向着下一片海,记录学习、生活与每一次发现。

sql学习进度

SQL 学习进度

更新日期:2026-10-16

现在学到哪里

  • 方向:数据分析;环境:MySQL 8.0、Navicat,使用牛客刷题。
  • 已完成「SQL必知必会」,正在做「SQL热题」和「SQL大厂笔试真题」。
  • 本对话「SQL刷题与复习2」继续 SQL;Python 在另一个独立对话学习。
  • 常用查询知识已覆盖较多,继续通过题目巩固。增删改、触发器、事务的学习状态分别记录,不笼统认定 SQL 已全部学完。

查知识点 · 查原表与练习

最近几项的准确状态

内容 已经做到 当前还缺什么
按岗位求平均工时 已提交 FROM 子查询版本;按秒计算后除以 3600,按岗位 AVG,再 ROUND 至 3 位;代码结构检查通过 未收到完整原表、完整官方输出要求与判题结果;未在用户数据库执行
TIMESTAMPDIFF 已理解秒数换算小数小时,08:45~17:00 是 8.25 小时;现已在工时查询中使用 继续在实际题目中练习;DATEDIFF 日期差用法保留
COUNT 配 OVER 已讲岗位内计数与全表计数,展示过每位员工保留的结果 尚未收到针对该用法的独立练习代码
4、4、2 排成 1、2、3 已讲 ROW_NUMBER 与 RANK、DENSE_RANK 的区别,以及同分时加唯一排序字段 本次例子尚未收到独立提交
周杰伦听歌题的语法报错 只收到 near '.user_id ...' 等报错片段 尚未收到完整 SQL,不能确定唯一错因;后续提供代码再定位

本轮笔记整理已把旧进度中“等待完整工时 SQL”更新为“已收到子查询版本”。代码文本检查与平台判题通过分别记录。

重点题目

题目 状态 复习时看什么
SQL47 已独立写出按用户编号与评分组合 DISTINCT,再在外层 AVG;逻辑检查正确,末尾多余中文引号已指出 按用户去重,不能只按评分去重
SQL48 已独立正确组合商品销量汇总、JOIN、RANK 分区和最终排序;旧对话按题面检查,未在用户数据库执行 先得到每商品一行;窗口只按销量判并列,product_id 放最终排序
SQL241 已写对按员工分区、按 id 排名后查询 rk = 1 的保留行 实际 DELETE 语句仍待独立提交;查出保留行不等于删除原表
SQL211 仍待巩固;曾保留 GROUP BY、缺少 PARTITION BY,后仅补 DESC;明确要求先跳过 尊重跳过安排,不强行追问;SQL48 应用正确也不自动结清本题
SQL220 待独立重写 入职工资同时匹配 emp_no 与 hire_date = from_date;当前工资按本题规定取值

SQL48 最终排序要求:category ASC、total_sales DESC、product_id ASC;排名窗口内不加唯一 product_id,以保留销量并列。

SQL211、SQL220 的必要原表和目标结果已集中到附录 R01、R02。SQL220 的 9999-01-01 条件仅按该题明确规定使用。

尚未完成的学习与复习

项目 目前状态 下一步检查点
UPDATE 2026-10-16 安排的复习未完成;已有讲解,尚未系统完成独立练习 单列、多列;逗号分隔赋值;NULL 不加引号;WHERE 修改范围
UPDATE + REPLACE 已讲过组合,待独立练习 根据原值替换片段,与直接设成固定值的区别
INSERT VALUES、IGNORE、INSERT SELECT 已有说明,待系统独立练习 列与值的位置对应、一次多行、唯一键冲突
DELETE 已讲按条件删除、重复行删除的思路,未系统完成独立练习 查询结果与原表修改的区别;SQL241 的实际删除
触发器 已有概念和示例;原计划 2026-10-14,正式学习仍待进行 用 actor 表,从 BEFORE INSERT、FOR EACH ROW、NEW 逐项讲,再练一题
事务 尚未系统教学 后续单独学习 START TRANSACTION、COMMIT、ROLLBACK,不作为继续刷查询题的前置条件
索引 已讲三种创建语法、FORCE INDEX;未记录独立实操 区分索引名、列名与约束

UPDATE 已约定的多列练习:对原 to_date = '9999-01-01' 的行,把 to_date 改为 NULL,同时把 from_date 改为 '2001-01-01'。先练单列,再练多列;给原表、要求与目标表,由用户写,不提前展示答案。

以上是保留的待办,不因新题或整理笔记而标为完成;按当前主线逐项推进,不强制打断正在做的题。

已覆盖知识的概况

主题 学习记录
查询、筛选、别名 已讲并练习;包括日期范围、LIKE、IN、NULL 判断
聚合、分组、去重、排序 已讲并有独立代码;复杂统计口径继续巩固
JOIN、LEFT JOIN、三表连接 已独立写对多题;ON / WHERE 与一对多后的金额、人数仍需穿插复习
子查询与 WITH 三个常见位置、关联子查询、分层传列已讲并有独立代码
CASE 与条件聚合 条件计数、金额贡献已练;高价占比继续巩固
常用函数 数值、字符串、日期、类型与缺失值处理已讲;熟练程度随实际题目检查
窗口函数 排名、同类均价、累计、移动平均、LAG / LEAD、分层环比已有独立正确代码
订单与用户指标 订单数、买家数、平均金额、复购标记、复购比例与付款贡献已写对
购买比例 全体和按城市分组的 LEFT JOIN、去重人数、比例已有正确完整代码
次日回访 每人 0/1 标记与日期关联写对,曾需补末尾用户编号排序;按注册日的完整留存率仍待独立提交

继续穿插复习

  • GROUP BY 与 PARTITION BY 的行数差异:SQL211 保留待巩固,尊重先跳过。
  • SQL220 独立重写;SQL241 实际删除。
  • 按注册日期汇总次日留存率,尚未收到完整独立查询。
  • 高价占比、日期端点、ON 与 WHERE、连接后的统计粒度。
  • 部分日期边界与排名编号题提供过修正,但尚未逐题收到独立完整修正版。
  • NOT IN 遇到 NULL、类型转换实操、执行计划与索引,按实际题目需要再补。

教学与笔记约定

  1. 中文、直接、一次一个知识点;区分首次系统教学、旧知识的新组合、复习。
  2. 先看用户代码;解释题目先给思路和小提示。明确要求代码时再给完整答案。
  3. 布置练习提供原表、需求、目标结果;优先沿用已有数据,不强制用 WITH。
  4. 难题先确认最终每行代表什么,再写中文步骤,展示必要的 JOIN 后结果和中间表。
  5. 区分语法、统计口径与处理顺序、输出别名及排序;不把尝试次数当作唯一进度标准。
  6. 严格按题面加条件;不凭题号或别人的题解补过滤。需要核对时查官方题面。
  7. 独立提交、文本检查、实际运行、判题通过分别记录;无证据不标为掌握。
  8. 主笔记只保留重点、必要语法和最小例子;完整题目及长代码放附录;状态和待办放本文件。
  9. 同一知识点更新原条目,不不断新建零散笔记。用户要求保存时实际落盘。
  10. 所有 sources/ 同步材料只读。本次仅更新原有 learning-notes 下的手工笔记,整理前版本已备份。

历史复习安排中的“明天”均按原记录日期理解,不在本文件自动改成新的预约或提醒。旧对话、逐次交接和整理前文本保存在历史记录与 archive 备份中。

posted @ 2026-10-20 15:23  _FFF  阅读(3)  评论(0)    收藏  举报
♫ We Are! · 海贼王
We Are! / ウィーアー!北谷洋 · 海贼王经典主题曲Apple Music 官方原唱试听片段网易云收听 · 官方完整歌曲入口
↑
Theme inspired by Sakura · ONE PIECE
图片 © 尾田荣一郎/集英社・东映动画 · 来源 Wallpaper Abyss / Wallpapers.com