- 博客(31)
- 收藏
- 关注
原创 窗口函数的详解
这个子句将结果集分成多个独立的分区,每个分区都是一个独立的数据集,窗口函数在每个分区上独立计算。例如,如果你按部门对员工数据进行分区,每个部门将有自己的窗口函数计算结果。:在某些窗口函数中,你可以通过窗口框架进一步细化窗口的大小。这个查询会返回每天的销售额,以及每个日期的销售额的运行总计和销售额排名。:基于值的范围的窗口框架,它允许你基于列的值来定义窗口的大小。等,它们为分区内的每一行分配一个唯一的序号或排名。等,它们允许你访问当前行的前面或后面的行的值。:基于行号的窗口框架,可以是固定的行数(如。
2024-11-08 21:04:47
588
原创 2041. 面试中被录取的候选人
(interview_id, round_id)是本表的主键(具有唯一值的列的组合)。- 候选人 8 :总分是 6 ,0 年工作经验。由于工作年限和分数,不列入结果表。- 候选人 11 :总分是 16 ,1 年工作经验。由于工作年限,不列入结果表。- 候选人 6 :总分是 10 ,10 年工作经验。由于分数不足,不列入结果表。- 候选人 9 :总分是 22 ,6 年工作经验。candidate_id 是这个表的主键(具有唯一值的列)。该表的每一行都表示候选人的姓名、工作年限以及面试 ID。
2024-11-07 10:00:00
1843
原创 力扣:1841. 联赛信息统计
Dortmund 是积分榜上的第一支球队. Ajax和Arsenal 有同样的分数, 但Arsenal的goal_diff高于Ajax, 所以Arsenal在表中的顺序在Ajaxzhi'qian.Ajax (team_id=1) 有4场比赛: 2败2平. 总分数 = 0 + 0 + 1 + 1 = 2.Arsenal (team_id=6) 有2场比赛: 2平. 总分数 = 1 + 1 = 2.(home_team_id, away_team_id) 是该表主键.team_id 是该表主键.
2024-11-07 09:45:00
932
原创 力扣:1811. 寻找面试候选人
Quarz在连续5场竞赛中赢得了奖牌(190, 191, 192, 193, and 194), 所以我们将他列入结果表。Alice在连续3场竞赛中赢得了奖牌 (191, 192, and 193), 所以我们将她列入结果表。Bob在连续3场竞赛中赢得了奖牌(190, 191, and 192), 所以我们将他列入结果表。Sarah 赢得了3块金牌 (190, 193, and 196),所以我们将她列入结果表。该表包含LeetCode竞赛的ID和该场比赛中金牌、银牌、铜牌的用户id。
2024-11-06 14:29:17
961
原创 SQL实战训练之,力扣:2020. 无流量的帐户数(递归)
购买订阅的日期是一个时间段,中间有可能跨年,先提取开始和结束的年,用递归列出所有的年份,筛选出2021年的账户。子查询not in查询会话表中在2021的用户就是在2021年没有会话的用户。在 2021 购买订阅但没有任何会话的帐户数。此表的每一行都包含与会话相关联的帐户和日期的信息。此表的每一行都表示帐户订阅的开始和结束日期。2、在2021没有任何会话。account_id 是此表的主键列。account_id是订阅表中的外键。session_id是该表的主键列。购买订阅但没有任何会话的帐 户数。
2024-11-06 11:36:55
1510
原创 SQL实战训练之,力扣:1988. 找出每所学校的最低分数要求
表中的数据在逻辑上是正确的,即记录了高 score 的行相比记录了低 score 的行拥有相同或更少的 student_count。可以选择 844 或 749 作为最低分数要求,因为学校最多会收到 76 份申请,这在学校的容纳能力以内。选择 744 作为最低分数要求,因为学校最多会收到 100 份申请,这在学校的容纳能力以内。- School 5:学校的容纳能力为 48。选择 975 作为最低分数要求,因为学校最多会收到 10 份申请,这在学校的容纳能力以内。容纳能力指的是学校能够接纳学生的最大数量。
2024-11-02 09:45:00
2003
原创 SQL实战训练之,力扣:1990. 统计实验的数量
在SQL(Structured Query Language)中,笛卡尔积(Cartesian product)是指两个或多个表通过查询连接时,如果没有指定有效的连接条件(ON子句),那么查询结果将包含所有可能的行组合。请注意,每一对(实验平台、实验名称)都应包含在输出中,包括平台上实验次数是零的。报告在给定三个实验平台中每种实验完成的次数,每一对(实验平台、实验名称)都应包含在输出中,包括平台上实验次数是零的。这个表包含有关随机实验人员进行的实验的 ID、用于做实验的平台以及实验名称的信息。
2024-11-02 09:30:00
1730
原创 SQL实战训练之,力扣:1951. 查询具有最多共同关注者的所有两两结对组
换句话说,如果有两个用户的共同关注者是最大的,我们应该返回所有具有此最大值的两两结对组。既然两两结对的所有组队的最大共同关注者的数值是3,所以,我们应该返回所有拥有3个共同关注者的两两组队,这就是仅有的一对(1, 7).3、结果返回表,每一行应该包含user1_id和 user2_id,其中user1_id < user2_id.这个表的每一行,表示这个user_id的用户和他的关注者,关注者的id 就是本表的 user_id.注意,我们没有关于用户3,4,5的任何关注者信息,我们认为他们有0个关注者。
2024-11-01 09:30:00
740
原创 SQL实战训练之,力扣:1843. 可疑银行账户
type 是枚举类型(包含'Creditor','Debtor'),其中 'Creditor' 表示用户向其账户存入资金,'Debtor' 表示用户从其账户取出资金。可见收入在5月与7月超过了最大收入,但6月没有。因为账户没有没有连续两月超过最大收入,账户4不列入结果表中。- 在 2021年6月,用户收入为 107100 + 102100 + 90900 = 300100。可见收入连续两月超过21000的最大收入,因此账户3列入结果表中。- 在 2021年7月,用户收入为 64900。
2024-11-01 09:15:00
1283
原创 SQL实战训练之,力扣:1949. 坚定的友谊
1、两人互为好友,是双向的,1是2的好友,2是1的好友,需要把表交叉合并在一起。(user1_id, user2_id) 是这个表的主键(具有唯一值的列的组合)。但这里不包括用户 2 和 3 的友谊,因为他们只有两个共同的朋友(1 和 6)。这张表的每一行都表示用户 user1_id 和 user2_id 是朋友。用户 1 和 2 有 4 个共同的朋友(3,4,5,和 6)。用户 1 和 3 有 3 个共同的朋友(2,6,和 7)。请注意,user1_id < user2_id。有三个共同的朋友 ,那么。
2024-10-31 09:15:00
1525
原创 SQL实战训练之,力扣:1715. 苹果和橘子的个数
大箱子 12 中有 19 + 8 (在小盒子中) = 27 个苹果和 20 + 8 (在小盒子中) = 28 个橘子。大箱子 20 中有 12 + 5 (在小盒子中) = 17 个苹果和 9 + 6 (在小盒子中) = 15 个橘子。大箱子 19 中有 8 + 19 (在小盒子中) = 27 个苹果和 4 + 4 (在小盒子中) = 8 个橘子。大箱子 8 中有 9 + 5 (在小盒子中) = 14 个苹果和 9 + 6 (在小盒子中) = 15 个橘子。大箱子 2 中有 6 个苹果和 15 个橘子。
2024-10-31 09:15:00
717
原创 SQL实战训练之,力扣:1875. 将工资相同的雇员分组
Meir (employee_id=2) 和 Michael (employee_id=3) 在同一个组中,因为他们的工资都是3000。Juan (employee_id=8) 不在任何一个组中,因为他的工资为6100,是独一无二的(即:没有人和他的工资相同)。2、组ID的设定基于这个组的工资相对于其他组的 工资的排名,即工资 最低 的组满足 team_id = 1。1、工资相同的员工分到一个组里面,每组最少2人,只有1人不分配组。的雇员划分到同一个组中。1、筛选工资相同的2个人以上的信息。
2024-10-30 10:38:26
786
原创 SQL实战训练之,力扣:1867. 最大数量高于平均水平的订单
不平衡订单的订单最大数量严格大于每个订单(包括订单本身)的平均数量。订单的平均数量计算为(订单中所有产品的总数量)/(订单中不同产品的数量)。订单的最大数量是订单中任何单个产品的最高数量。严格大于每个订单(包括订单本身)的平均数量也就是大于每个订单的平均数量的最大值。不平衡订单的订单最大数量严格大于每个订单(包括订单本身)的平均数量。订单1和订单3是不平衡的,因为它们的最大数量超过了它们订单的平均数量。4、每个订单的最大数量大于每份订单平均数量的最大值。4、每个订单的最大数量大于每份订单平均数量的最大值。
2024-10-30 09:15:00
1773
原创 Linux高级命令
vmstat:报告关于进程、内存、分页、块IO、陷阱和CPU活动的信息。journalctl:查看和分析 systemd 系统和服务的日志。init:控制运行级别,用于启动、恢复、运行和关闭系统。awk:模式扫描和处理语言,用于数据提取、报告生成等。htop:增强版的 top,支持颜色显示和更多功能。auditd:审计框架,用于跟踪系统调用和系统事件。sed:流编辑器,用于对文本进行过滤和转换。tar:打包和压缩文件,支持多种压缩格式。ip:显示和操作路由、网络设备、接口等。
2024-10-29 17:29:16
447
原创 Linux常用命令
apt(Debian/Ubuntu):软件包管理工具。yum(CentOS/RHEL):软件包管理工具。touch:创建新文件或更新现有文件的时间戳。gunzip:解压缩 gzip 压缩的文件。htop:增强版的 top,支持颜色显示。dnf(Fedora):软件包管理工具。chown:改变文件或目录的所有者。chgrp:改变文件或目录的所属组。du:显示文件或目录的磁盘使用情况。chmod:改变文件或目录的权限。echo:输出字符串或命令结果。mv:移动或重命名文件/目录。tail:查看文件的最后几行。
2024-10-29 08:27:14
414
原创 SQL实战训练之,力扣:1555. 银行账户概要
Moustafa 在 "2020-08-01" 支付了 $400 并在 "2020-08-03" 收到了 $200 ,当前额度 (100 -400 +200) = -$100。Jonathan 在 "2020-08-02" 收到了 $500 并在 "2020-08-08" 支付了 $200 ,当前额度 (200 +500 -200) = $500。4、计算变动后的额度(credit+sum_money)用户4的sum_money的值为null,需要用ifnull处理。表中的每一列包含银行的交易信息。
2024-10-28 09:00:00
2607
原创 SQL实战训练之,力扣:1596. 每位顾客最经常订购的商品
Bob (customer 2) 一次订购键盘, 一次订购鼠标, 一次订购显示器, 所以这些都是 Bob 最经常订购的商品.Alice (customer 1) 三次订购鼠标, 一次订购键盘, 所以鼠标是 Alice 最经常订购的商品.Jerry (customer 4) 只一次订购键盘, 所以键盘是 Jerry 最经常订购的商品.Tom (customer 3) 只两次订购显示器, 所以显示器是 Tom 最经常订购的商品.customer_id 是该表具有唯一值的列。, 他最经常订购的商品的。
2024-10-27 09:45:00
844
原创 SQL实战训练之,力扣:1831. 每天的最大交易
"2021-4-28" --> 有两个交易,id 是 5 和 9 ,交易 5 的金额是 40 ,而交易 9 的数量是 21。只需要将交易 5 加入结果表,因为它是当天金额最大的交易。"2021-4-29" --> 有两个交易,id 是 1 和 6 ,这两个交易的金额都是 58 ,因此需要把它们都写入结果表。"2021-4-3" --> 有一个 id 是 8 的交易,因此,把它加入结果表。如果一天中有多个这样的交易,返回这些交易的 ID。最后,把交易 id 按照升序排列。函数解决这道题目吗?
2024-10-26 10:42:16
1077
原创 SQL实战训练之,力扣:1532最近的三笔订单
结果表我们按照 customer_name 升序排列,customer_id 升序排列,order_date 降序排列。Winston 有 4 笔订单, 排除了 "2020-06-10" 的订单, 因为它是最老的订单。写一个解决方案,找到每个用户的最近三笔订单。如果用户的订单少于 3 笔,则返回他的全部订单。该表包含 id 为 customer_id 的消费者的订单信息。-- 1、排名,按照用户分组,日期倒序排列排名。customer_id 是该表具有唯一值的列。-- 3、筛选最近3笔订单。
2024-10-26 09:47:00
862
原创 SQL实战训练之,力扣:1767. 寻找没有被执行的任务对(递归)
task_id 表示的为主任务的id,每一个task_id被分为了多个子任务(subtasks),subtasks_count表示为子任务的个数(n),它的值表示了子任务的索引从1到n。编写解决方案报告没有被执行的(主任务,子任务)对,即没有被执行的(task_id, subtask_id)。每一行表示标记为task_id的主任务与标记为subtask_id的子任务被成功执行。,对于每一个task_id,subtask_id
2024-10-26 09:24:41
1019
原创 SQL实战训练之,力扣:1412. 查找成绩处于中游的学生
成绩处于中游的学生是指至少参加了一次测验, 且得分既不是最高分也不是最低分的学生。(exam_id, student_id) 是该表主键(具有唯一值的列的组合)。对于测验 3 和 4: 学生 1 和 4 分别获得了最低分和最高分。2、在考试表中找不在获得最高、最低同学的id(中等的学生的id)2、在考试表中找不在获得最高、最低同学的id(中等的学生的id)对于测验 1: 学生 1 和 3 分别获得了最低分和最高分。对于测验 2: 学生 1 既获得了最高分, 也获得了最低分。3、关联学生表带出学生名称。
2024-10-25 09:30:00
1334
原创 SQL中的NULL 的特殊性和特殊用途
在SQL中,NULL代表的是“未知”或“不存在”的值,它并不是简单的“空”或“零”。NULL的特殊性在于它表示的是一个未知的值,而不是一个空字符串或数字零。这种特殊性带来了一些在数据处理中需要特别注意的地方,以及一些特殊的用途。
2024-10-24 17:36:59
558
原创 SQL实战训练之,力扣:1225. 报告系统状态的连续日期
结果忽略了 2018 年的记录,因为我们只关心从 2019-01-01 到 2019-12-31 的记录。从 2019-01-01 到 2019-01-03 所有任务成功,系统状态为 "succeeded"。从 2019-01-06 到 2019-01-06 所有任务成功,系统状态为 "succeeded"。从 2019-01-04 到 2019-01-05 所有任务失败,系统状态为 "failed"。即如果任务失败了,就是失败状态的起止日期,如果任务成功了,就是成功状态的起止日期。最后结果按照起始日期。
2024-10-24 10:00:00
772
原创 SQL实战训练之,力扣:1709. 访问日期之间最大的空档期
对于第三个用户,问题中的唯一空档期在 2020-11-11 至 2021-1-1 之间,共计 51 天。- 2020-10-20 至 2020-11-28 ,共计 39 天。- 2020-11-28 至 2020-12-3 ,共计 5 天。- 2020-10-5 至 2020-12-9 ,共计 65 天。- 2020-12-3 至 2021-1-1 ,共计 29 天。- 2020-12-9 至 2021-1-1 ,共计 23 天。第三步:计算日期差(结束日期 - 访问日期)空档期。返回结果表,按用户编号。
2024-10-23 11:41:23
1585
原创 SQL实战训练之,力扣:184. 部门工资最高的员工
Max 和 Jim 在 IT 部门的工资都是最高的,Henry 在销售部的工资最高。此表的每一行都表示员工的 id、姓名和工资。它还包含他们所在部门的 id。第一步:员工表Employee和部门表Departmen关联查询。| 列名 | 类型 |此表的每一行都表示一个部门的 id 及其名称。| 列名 | 类型 |在 SQL 中,id 是此表的主键列。在 SQL 中,id是此表的主键。第二步:按照部门分组,工资倒序排名。查找出每个部门中薪资最高的员工。
2024-10-22 19:42:18
1059
原创 SQL实战训练之,力扣:1549. 每件商品的最新订单
keyboard 的最新订单在2020-08-01, 在这天有两次下单.screen 的最新订单在2020-08-29, 在这天只有一次下单.mouse 的最新订单在2020-08-03, 在这天只有一次下单.hard disk 没有被下单, 我们不把它包含在结果表中.写一个解决方案, 找到每件商品的最新订单(可能有多个).该表包含消费者customer_id产生的订单.customer_id 是该表主键.product_id 是该表主键.该表包含所有商品的信息.查询结果格式如下例所示。
2024-10-22 19:41:08
785
原创 力扣题:626. 换座位(最简洁的sql写法)
1、交换ID,奇数+1,偶数-1。2、按照交换后的ID排序。3、排名,排名为新的ID。2、按照变更后的ID排序。重新排序作为新的ID。
2024-10-16 16:39:58
174
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人