- 博客(27)
- 收藏
- 关注
原创 SQL题目分享之‘聚合后反向匹配’思维运用 获取每个部门中薪水最高的员工相关信息
摘要:本文介绍了如何查询每个部门当前在职员工的最高薪水信息。通过关联dept_emp和salaries表,筛选出当前有效记录(to_date='9999-01-01'),使用子查询计算各部门最高薪,再通过双条件关联(部门号+薪水)精准匹配最高薪员工。最终按部门号升序输出结果。文章详细解析了SQL实现步骤、关键难点(如双关联条件必要性)和注意事项,并提供了通用解题模板和窗口函数替代方案。该解决方案适用于各类分组极值查询场景,是数据库查询中的常见考点。
2025-12-01 09:58:44
669
原创 SQL 实战对比:从积分统计题看 “唯一极值” 与 “并列极值” 的解题差异
本文通过对比牛客网两道SQL题目,解析了"唯一最高积分用户"与"多个并列最高积分用户"的不同解法。第一题使用GROUP BY+SUM+LIMIT1直接获取唯一最高分用户;第二题则需通过子查询结合DENSE_RANK()排名函数筛选所有并列第一的用户。文章总结了极值统计的通用解法:唯一极值场景用简单聚合+排序,可能并列时需引入排名函数,并强调了需求差异对SQL编写的重要影响,提醒开发者避免LIMIT1处理并列情况的常见错误。
2025-11-28 10:33:14
712
原创 SQL触发器(附带例题)
SQL触发器是一种数据库自动化工具,能够在特定操作发生时自动执行预设动作。本文通过员工数据审计案例,详细解析触发器的核心要素:触发事件(INSERT)、时机(BEFORE)、对象(employees_test表)和操作(向audit表插入日志)。触发器使用NEW关键字获取新插入行的字段值,实现数据自动同步。此外,触发器还可用于数据验证、自动计算和多表关联更新等场景。但需注意避免过度依赖、循环触发和数据一致性问题。触发器通过自动化重复操作,能有效减少人工干预和错误,是SQL中重要的自动化工具。
2025-11-25 10:47:51
891
原创 以一道题为例讲清楚 窗口函数是什么,什么时候使用,怎么使用
窗口函数是SQL中处理排名、聚合分析等复杂查询的强大工具。它能在不改变原始数据行数的情况下,对指定窗口内的数据进行计算。本文以员工薪水排名为例,对比了普通SQL与窗口函数的差异,详细介绍了DENSE_RANK()等排名函数的使用场景和语法结构。窗口函数主要分为四类:排名函数(如ROW_NUMBER)、聚合函数(如SUM)、偏移函数(如LAG)和分布函数(如PERCENT_RANK)。通过OVER子句定义计算窗口,结合ORDER BY指定排序规则,可以高效解决分组排序、移动计算等常见数据分析需求,避免繁琐的子
2025-11-25 09:12:15
1166
原创 SQL习题分享之 浙大不同难度题目的正确率
摘要:本文分析如何查询浙江大学用户在不同难度题目下的答题正确率。通过关联用户信息表、答题记录表和题目详情表,筛选浙江大学的用户数据,按题目难度分组后计算正确率(正确答题数/总答题数),并保留四位小数。最终结果按正确率升序排列。关键步骤包括:三表关联、条件筛选、分组聚合、条件统计和结果格式化排序。该解法展示了SQL多表关联、条件聚合等核心技能,适用于类似的数据分析场景。
2025-11-24 09:21:18
980
原创 SQL习题分享之 统计复旦用户8月练题情况
本文介绍了如何查询复旦大学用户在8月份的刷题情况,包括总题数和正确题数统计。关键点在于使用LEFT JOIN保留无刷题记录的用户,并通过条件聚合(COUNT和SUM+CASE WHEN)计算题数。日期筛选放在ON子句而非WHERE,确保无记录用户不被过滤。最终SQL以用户表为主表,左连接刷题表,分组统计题数并按用户ID排序。该方法高效解决了包含零记录用户的统计需求,是SQL条件聚合的典型应用。
2025-11-24 09:20:49
881
原创 SQL题目分享之 计算用户的平均次日留存率
本文介绍了如何计算用户刷题次日留存率。通过分析用户行为数据,使用SQL查询统计某天刷题用户在第二天继续刷题的比例。核心思路是:1) 对用户刷题记录去重;2) 通过自连接匹配次日行为;3) 计算留存用户占比。示例中使用了LEFT JOIN和日期函数,最终得到30%的次日留存率。这种分析方法适用于各类用户行为留存率的计算,是用户行为分析的典型应用场景。
2025-11-21 10:39:26
1092
原创 牛客网SQL热题之获取每个部门中薪水最高的员工相关信息
摘要:本文介绍如何通过SQL查询获取每个部门中薪水最高的员工信息。通过连接员工表(dept_emp)和薪资表(salaries),筛选当前有效记录(to_date='9999-01-01'),先计算每个部门最高薪资,再匹配对应员工。最终输出部门编号(dept_no)、员工编号(emp_no)和最高薪资(salary),并按部门升序排列。示例输出:d001部门10001号员工薪资88958,d002部门10003号员工薪资92527。该方法采用"先聚合后匹配"的标准SQL模式,能准确处理部
2025-11-21 10:16:22
563
原创 头歌SQL系列练习题④多表连接查询
这篇文章介绍了五个SQL连接查询实验。第一关要求查询选修数学课的学生学号和成绩,并按成绩降序排列;第二关查询数学课成绩在80-90分的学生,并将成绩乘以0.8系数;第三关进行多表连接查询学生姓名、课程名和成绩;第四关使用外连接查询所有课程名称和选修人数(包括无人选课);第五关通过自连接查询课程的先行课程。每个实验都提供了完整的SQL实现代码,展示了不同类型的SQL连接查询方法。
2025-11-20 10:17:12
153
原创 头歌SQL习题系列③子查询
SQL子查询实验包含五个不同场景的子查询应用。第一关使用NOT IN子查询找出未选修数学课程的学生;第二关以子查询为数据源计算学生已修学分情况;第三关运用ALL谓词查询比计算机系学生都小的学生;第四关通过相关子查询找出全部学生都选修的课程;第五关实现"选修了某个学生全部课程"的查询需求。实验覆盖了子查询的多种典型应用,包括作为条件、数据源、谓词比较和相关查询等场景,展示了SQL子查询在复杂数据过滤和关联查询中的强大功能。每个实验都基于学生选课数据库(JXGL)的三个基本表(Student
2025-11-20 10:08:32
181
原创 头歌SQL习题系列②SQL数据更新
本文展示了一个完整的SQL操作示例集,包含10个数据库操作任务:1)清空Course表;2)批量插入SC表记录;3)插入部分属性到Student表;4)批量从Course表导入数据到C1表;5)更新Course表所有学分;6)更新特定学生信息;7)基于复杂条件更新成绩;8)删除指定学生;9)批量删除院系学生选课记录;10)完整插入学生信息。这些操作涵盖了数据删除、插入和更新的基本语法,包括单记录操作、批量处理以及条件查询更新等典型数据库操作场景。
2025-11-19 10:55:43
253
原创 头歌SQL系列练习题①索引的建立与删除
摘要:本文包含四个SQL索引操作实验。1)为表TInfo的TID字段创建升序聚集索引clu_tid;2)为Dept和Tname字段创建复合索引ix_dptnm,分别按升序和降序排列;3)为HomeTel字段创建唯一索引unq_hometel;4)删除已建立的复合索引ix_dptnm。每个实验均使用TestDB数据库,通过begin/end标记执行区域,完整展示了索引的创建、删除等基本操作。
2025-11-19 10:46:35
338
原创 头歌/数据可视化/Echarts可视化教程(七)—— 工具箱组件与详情提示框组件
【代码】头歌/数据可视化/Echarts可视化教程(七)—— 工具箱组件与详情提示框组件。
2025-06-10 13:54:52
366
原创 头歌/数据可视化/Echarts可视化教程(五)——直角坐标系下的网格和坐标轴
【代码】头歌/数据可视化/Echarts可视化教程(五)——直角坐标系下的网格和坐标轴。
2025-06-10 13:52:48
197
空空如也
请问为什么运行不了jupyter?
2024-10-30
如图提问,请回答以下问题真的搞不明白呀?
2023-06-24
C语言分解任意给定整数的素因子?
2023-02-10
请问这个代码是什么意思?
2022-12-11
我们所写的每条c语句,经过编译最终都会转化成二进制的机器指令?
2022-11-21
当scanf的格式控制字符串有很多时,什么时候需要用逗号分开,什么时候不用?
2022-11-02
为什么划线的地方,中间不要用逗号分隔开来?
2022-11-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅