- 博客(55)
- 收藏
- 关注
原创 题解 | 找出补位班次
字段shift_period:VARCHAR(20),班次时段,可能值如lunch、afternoon、dinner、night。字段shift_status:VARCHAR(20),班次最终状态,可能值如filled、cancelled。字段shift_id:BIGINT,所属补位班次 ID,对应relief_shifts.shift_id。字段response_id:BIGINT,反馈记录 ID,主键。字段shift_id:BIGINT,补位班次 ID,主键。,并从中找出门店当日表现最好的补位班次。
2026-07-16 19:32:18
230
原创 题解 | 近7天骑手履约时效看板
80001 | 1 | 2024-07-20 09:00:00 | 2024-07-20 10:00:00 | 45 | -- 窗口外。出行平台需要做“近7天骑手履约时效看板”,按城市评估每位骑手的近7天送达单量、准时单量、准时率与平均配送时长,并在城市内排名,用于日常调度与激励。以“最新一条已送达记录的delivered_ts”为基准日,统计窗口为“基准日向前 7 天(含基准日)”。1)courier(骑手信息)2)parcel(包裹履约)
2026-04-24 16:34:26
214
原创 题解 | 深入分析各款产品年总销售额与竞品的年度对比
按照上述示例中的数据,产品ID是1的产品全年总销售额 = 10000+15000+12000+18000+6000+20000+8000+10000 = 99000,竞品的销售总金额是80000,差值是19000。【要求】:根据上述表格,查询每个产品在不同地区、不同销售渠道下 2023 年的全年销售总额,以及与主要竞品 2023 年全年销售总金额的差值。【背景】:OPPO 公司为了精准评估产品在 2023 年的市场表现,需要根据以下三个数据表,深入分析各款产品年总销售额与竞品的年度对比。
2026-03-25 21:21:50
423
原创 题解 | 哪些产品在特定时间段内表现最为出色
背景】:公司需要对过去一段时间的销售情况进行深入分析,以了解哪些产品在特定时间段内表现最为出色。【原始表】:【要求】:根据上面这两个表格,查询在'2024-01-01' —'2024-12-31'销量最高的产品,包含的字段:产品 ID、产品名称、总销售额、总销量。【示例】:products(产品)表:sales_records(销售记录)表:【按照要求查询出来的表】
2026-03-24 22:59:16
358
原创 Flink--使用KeyedProcessFunction 实时统计一段时间内的出现次数最多的水位TopN问题
基于窗口的结束时间来设定延迟,其实并不需要等太久——因为我们是靠水位线的推进来触发定时器,而水位线的含义就是“之前的数据都到齐了”。而在等待过程中,之前已经到达的数据应该缓存起来,我们这里用一个自定义的HashMap来进行存储,key为窗口的标记,value为List。具体实现可以分成两步:先对每个vc统计出现次数,然后再将统计结果收集起来,排序输出最终结果。由于最后的排序还是基于每个时间窗口的,输出的统计结果中要包含窗口信息,我们可以输出包含了vc、出现次数(count)以及窗口结束时间的Tuple3。
2026-03-03 09:06:09
119
原创 题解 | 查询出每个品牌在不同月份的总销售额以及购买该品牌商品的用户的平均年龄
订单表中有4笔订单记录,但是第4笔不在 2024 年 1 月 1 日至 2024 年 6 月 30 日之间,所以这条数据不查询出来,对于类别1的商品有2笔数据,总金额是500+400 = 900,这两笔订单都是男性购买,所以类别1的商品male_customers是2,female_customers:是0。【要求】:根据上面这两个表格,查询每个商品类别在 2024 年 1 月 1 日至 2024 年 6 月 30 日期间的销售总额以及购买该类别商品的男性和女性客户数量。【按要求查询出来的表】
2026-03-02 16:11:42
516
原创 题解 | 物流公司想要分析快递小哥的薪资构成和绩效情况
上述示例中,courier_id是1的员工是Alice,他在2024年7月份的总收入 = 2000 + 50+50 = 2100,支出是30+20 = 50,所以他在2024年7月份的总收入是2100 - 50 = 2050。【要求】:根据上述表格,查询出每个快递员在 2024 年 7 月的总收入(基本工资 + 派送费用总和 - 支出 )。查询结果按照快递员 ID 升序排列。【背景】:物流公司想要分析快递小哥的薪资构成和绩效情况,以便制定更合理的薪酬政策。【按要求查出来的表】
2026-01-31 21:23:54
542
原创 Flink转换算子——filter
可以看出我们代码的前几个步骤是相同的是首先获取执行环境,创建源算子,不同的是使用不同的转换算子,我们这篇文章主要是介绍filter算子也就是过滤算子,通过一个布尔条件表达式设置过滤条件,对于每一个流内元素进行判断,若为true则元素正常输出,若为false则元素被过滤掉。filter转换操作,顾名思义是对数据流执行一个过滤,通过一个布尔条件表达式设置过滤条件,对于每一个流内元素进行判断,若为true则元素正常输出,若为false则元素被过滤掉。对进来的数据获取其Id 通过与给定的标准进行对比,进行过滤。
2026-01-29 22:02:00
161
原创 Flink的转换算子——map
方法需要传入的参数是接口MapFunction的实现;map是大家非常熟悉的大数据操作算子,主要用于将数据流中的数据进行转换,形成新的数据流。简单来说,就是一个“一一映射”,消费一个元素就产出一个元素。可知 是将senseDS的数据经过(sense -> sense.getid())的表达式进行的输出。map是一个一对一的算子,也就是说输入一个数据那经过map算子之后也只会输出一个数据。下面的代码,实现了提取WaterSensor中的id字段的功能。但是通过直观感受使用第一个方法代码比较简洁。
2026-01-29 21:53:30
98
原创 题解 | 查询出每个品牌在特定时间段内的退货率以及平均客户满意度评分
【要求】:根据上面这三个表格,按照品牌分组查询每个品牌在 2024 年 7 月的退货率(退货数量/总销售数量)以及平均客户满意度评分。上述示例中Brand B有两笔订单分别是订单ID是3和4,一笔是6月份的,一笔是7月份,我们需要查询的是7月份的,所以只看Brand B 7月份的订单,退货率为0,评分是7。【背景】:电商平台需要深入分析不同品牌商品的退货情况和客户满意度,现在需要你根据下面三个数据表,查询出每个品牌在特定时间段内的退货率以及平均客户满意度评分。【按照要求查询出来的表】
2026-01-29 21:42:48
613
原创 题解 | 查询出不同类别商品中,销售金额排名前三且利润率超过 20%的商品信息
要求】:根据上面这两个表格,查询出不同类别商品中,销售金额排名前三且利润率超过 20%的商品信息,包含的字段:商品 ID、商品名称、所属类别 ID、销售金额、利润率((销售金额 - 成本金额)/ 销售金额)。查询出来的数据先按照类别 ID 升序排列,再按照销售金额降序排列,如果金额一致按照产品ID升序排列。【示例】product_category (商品类别)表:sales_and_profit (销售与利润)表:【按照要求查询出来的表】【解释】
2026-01-26 21:22:39
804
原创 题解 | 分析每个商品在不同时间段的销售情况
上述示例中,产品ID1、2、3、4的产品都是2024年第2季度产生了订单,产品A产生的订单总金额是1100,产品ID5产品E在2024年第2季度没有产生订单,产品A和产品E都是Clothing类别,所以产品A排名1,产品E排名2且销售总金额是0;【要求】:根据上面这三个表格,查询每个商品的销售情况,包含的字段:商品 ID、商品名称、该商品在 2024 年第二季度的销售总额,该商品在所属类别的销售排名,所属供应商。查询出来的数据按照商品 ID 升序排列。【按要求查询出来的表】
2026-01-26 21:07:52
646
原创 题解 | 电商平台需要对商家的销售业绩、退款情况和客户满意度进行综合评估
上述示例中merchant_id是1的商家名称是商家A,总销售额是5000+4000 = 9000;【要求】:根据上述表格,查询出商家的总销售金额、总退款金额、平均满意度得分。【背景】:电商平台需要对商家的销售业绩、退款情况和客户满意度进行综合评估,以确定优秀商家和需要改进的商家。2|商家 B|14000.00|1500.00|75.00。1|商家 A|9000.00|1000.00|75.00。(2, '商家 B', '电子产品');VALUES (1, '商家 A', '服装'),【按要求查出来的表】
2026-01-26 10:00:56
1166
原创 题解 | 最受欢迎的top3课程
请找到最受欢迎的top3课程,受欢迎定义为:必须是平均评分不低于3,发布后一周内被观看次数越大越受欢迎。如果观看量一样大,则被播放总时长越长越受欢迎,输出课程ID、观看量和总时长(单位:分钟)。按受欢迎程度由高到低排序。start_time datetime COMMENT "开始观看时间",end_time datetime COMMENT "结束观看时间",cid int NOT NULL COMMENT "课程ID",cid INT NOT NULL COMMENT "课程ID",
2025-12-11 11:47:17
969
原创 各个部门实际平均薪资和男女员工实际平均薪资
故结果为dep2部门平均薪资是(8800+13500+54000)/ 3=25433.33、average_actual_salary_male是13500/1=13500.00、average_actual_salary_female是(8800+54000)/2=31400.00。实发薪资和性别分别为:3号female员工11000-2200=8800、5号male员工16000-2500=13500、7号female员工60000-6000=54000。-- 创建 staff_tb 表数据。
2025-12-10 21:12:10
621
原创 题解 | 统计每个产品的销售情况
为了对每个产品的营销进行新的策划,需要统计2023年每个产品的销售情况。customers(顾客)表格。products(产品)表格。orders(订单)表格。按要求查询出来的结果。
2025-12-10 20:18:01
969
原创 接雨水问题
这道题也是类似,我们可以将整个图看成一个水桶,两边就是水桶的板,中间比较低的部分就是水桶的底,由较短的边控制水桶的最高水量。但是水桶中可能出现更高的边,比如上图第四列,它比水桶边还要高,那这种情况下它是不是将一个水桶分割成了两个水桶,而中间的那条边就是两个水桶的边。数据范围:数组长度 0≤n≤2×1050≤n≤2×105,数组中每个值满足 0<val≤1090<val≤109 ,保证返回结果满足 0≤val≤109 0≤val≤109。(数组以外的区域高度视为0)要求:时间复杂度 O(n)O(n)
2025-12-03 21:37:36
341
原创 题解 | 更新用户积分信息?
订单信息表:order_tb(订单id-order_id,用户id-user_id,订单金额-order_price,订单创建时间-order_time)会员等级信息表:uservip_tb(用户id-user_id,会员等级-vip,积分-point)INSERT INTO uservip_tb VALUES(11,'银卡会员',1555);INSERT INTO uservip_tb VALUES(10,'银卡会员',530);要求输出:user_id,积分。
2025-12-03 12:07:15
442
原创 买卖股票的最好时机(三)
动态规划算法的基本思想是:将待求解的问题分解成若干个相互联系的子问题,先求解子问题,然后从这些子问题的解得到原问题的解;因最多只可以同时持有一只股票,所以不能在第一天进行第一笔股票交易的买进操作,又在第二天进行第二笔股票交易的买进操作(此时第一笔股票交易还没卖出),最后两笔股票交易同时在第三天卖出,也即以上操作不满足题目要求。假设你有一个数组prices,长度为n,其中prices[i]是某只股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益。第一笔股票交易在第一天买进,第三天卖出;
2025-12-01 21:08:09
842
原创 矩阵的最小路径和
动态规划算法的基本思想是:将待求解的问题分解成若干个相互联系的子问题,先求解子问题,然后从这些子问题的解得到原问题的解;给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。例如:当输入[[1,3,5,9],[8,1,3,4],[5,0,6,1],[8,8,4,0]]时,对应的返回值为12,数据范围: 1≤n,m≤5001≤n,m≤500,矩阵中任意值都满足 0≤ai,j≤1000≤ai,j≤100。
2025-11-25 17:12:46
338
原创 题解 | 不同路径的数目(一)
动态规划算法的基本思想是:将待求解的问题分解成若干个相互联系的子问题,先求解子问题,然后从这些子问题的解得到原问题的解;如果我们此时就在右下角的格子,那么能够到达该格子的路径只能是它的上方和它的左方两个格子,因此从左上角到右下角的路径数应该是从左上角到它的左边格子和上边格子的路径数之和,因此可以动态规划。进阶:空间复杂度 O(1)O(1),时间复杂度 O(min(n,m))O(min(n,m))要求:空间复杂度 O(nm)O(nm),时间复杂度 O(nm)O(nm)机器人要到达地图的右下角(终点)。
2025-11-25 16:44:17
355
原创 最长公共子序列(二)
题目要求获取最长公共子序列,我们肯定要先知道最长到底是多长,因此肯定要先求最长公共子序列的长度,然后根据这个长度获取这个子序列。(注意:子序列不是子串,子串要求所有字符必须连续,子序列不要求连续,只要求相对位置不变)给定两个字符串str1和str2,输出两个字符串的最长公共子序列。目前给出的数据,仅仅会存在一个最长的公共子序列。数据范围:0≤∣str1∣,∣str2∣≤20000≤∣str1∣,∣str2∣≤2000。要求:空间复杂度 O(n2)O(n2) ,时间复杂度 O(n2)O(n2)
2025-11-24 17:00:42
258
原创 题解 | 得分不小于平均分的最低分
examination_info表(exam_id试卷ID, tag试卷类别, difficulty试卷难度, duration考试时长, release_time发布时间)(9003, '算法', 'medium', 80, '2020-08-02 10:00:00');exam_id int UNIQUE NOT NULL COMMENT '试卷ID',exam_id int NOT NULL COMMENT '试卷ID',uid int NOT NULL COMMENT '用户ID',
2025-11-23 16:32:22
459
原创 题解 | SQL类别高难度试卷得分的截断平均值
摘要:本文介绍如何计算SQL类别高难度试卷得分的截断平均值(去掉最高分和最低分后的平均分)。通过连接exam_record和examination_info表,筛选出已完成的有效分数记录,使用聚合函数计算去除极值后的平均分,并保留一位小数
2025-11-23 11:49:39
1076
原创 题解 | 牛客每个人最近的登录日期(二)
第1行表示user_id为2的用户在2020-10-12使用了客户端id为1的设备登录了牛客网。第4行表示user_id为3的用户在2020-10-13使用了客户端id为2的设备登录了牛客网。牛客每天有很多人登录,请你统计一下牛客每个用户最近登录是哪一天,用的是什么设备.wangchao最近的登录日期也是2020-10-13,而且是使用ios登录的。fh最近的登录日期在2020-10-13,而且是使用ios登录的。
2025-11-23 02:45:00
301
原创 题解 | 牛客每个人最近的登录日期(三)
(sqlite里查找某一天的后一天的用法是:date(yyyy-mm-dd, '+1 day'),四舍五入的函数为round,sqlite 1/2得到的不是0.5,得到的是0,只有1*1.0/2才会得到0.5。user_id为1的用户在2020-10-12第一次新登录了,在2020-10-13又登录了,算是成功的留存。user_id为2的用户在2020-10-12第一次新登录了,在2020-10-13又登录了,算是成功的留存。牛客每天有很多人登录,请你统计一下牛客新登录用户的次日成功的留存率,
2025-11-23 01:23:55
602
原创 题解 | 牛客每个人最近的登录日期(一)
第1行表示user_id为2的用户在2020-10-12使用了客户端id为1的设备登录了牛客网。第4行表示user_id为3的用户在2020-10-13使用了客户端id为2的设备登录了牛客网。牛客每天有很多人登录,请你统计一下牛客每个用户最近登录是哪一天。user_id为3的最近的登录日期也是2020-10-13。user_id为2的最近的登录日期在2020-10-13。
2025-11-22 22:14:10
329
原创 题解 | 异常的邮件概率
有一个邮件(email)表,id为主键, type是枚举类型,枚举成员为(completed,no_completed),completed代表邮件发送是成功的,no_completed代表邮件是发送失败的。2020-01-11失败的概率为0.500,因为email的第1条数据,发送的用户id为2是黑名单用户,所以不计入统计,正常用户发正常用户总共2次,但是失败了1次,所以概率是0.500;第2行表示id为2的不是正常用户,是黑名单用户,如果发送大量邮件或者出现各种情况就会容易发送邮件失败的用户。
2025-11-22 17:04:54
1276
原创 题解 | 给出employees表中排名为奇数行的first_name
对于employees表中,输出first_name排名(按first_name升序排序)为奇数的first_name。如对以上示例数据的first_name排序后的序列为:Anneke、Bezalel、Georgi、Kyoichi。则排序后的序列中的Georgi排名为3,Anneke排名为1,所以按原序列顺序输出Georgi、Anneke。请你在不打乱原序列顺序的情况下,输出:按first_name排升序后,取奇数行的first_name。
2025-11-22 12:37:03
236
原创 SQL-练习之——完成员工考核试卷突出的非领导员工-牛客
摘要:分析某公司2021年度员工考核数据,筛选出每类试卷表现突出的非领导员工。突出员工需满足:1)得分高于该试卷平均分;2)答题用时少于平均用时;3)员工等级<7。通过多表连接计算各项平均值并进行对比筛选,最终输出满足条件的员工ID、等级和试卷类别,按员工ID升序排列。示例结果显示员工1006和1007分别在技术水平和企业文化类试卷中表现突出。
2025-11-14 21:16:28
577
原创 算法练习之——字符串变形-牛客
首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把这个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。数据范围: 1≤n≤1061≤n≤106 , 字符串中包括大写英文字母、小写英文字母、空格。比如"Hello World"变形后就变成了"wORLD hELLO"。进阶:空间复杂度 O(n)O(n) , 时间复杂度 O(n)O(n)请返回变形后的字符串。给定一个字符串s以及它的长度n(1 ≤ n ≤ 10^6)对于一个长度为 n 字符串,我们需要对它做一些变形。
2025-11-13 19:33:33
142
原创 SQL练习分享-牛客网-SQL编程-查询连续登陆的用户
摘要:该问题要求查询2022年2月8日新注册且在随后连续登录不少于3天的用户。使用SQL解决方案,通过lead()窗口函数获取用户后续登录日期,datediff()函数验证连续3天登录。示例输出显示用户1102和1106满足条件,分别在9-11日和10-12日连续登录。SQL语句先筛选注册用户,再检测其登录记录的连续性。
2025-11-02 21:43:06
403
原创 kafka集群安装部署
kafka运行日志(数据)存放的路径,路径不需要提前创建,kafka自动帮你创建,可以配置多个磁盘路径,路径与路径之间可以用","分隔。#配置连接Zookeeper集群地址(在zk根目录下创建/kafka,方便管理)#broker对外暴露的IP和端口 (每个节点单独配置)#broker对外暴露的IP和端口 (每个节点单独配置)#broker对外暴露的IP和端口 (每个节点单独配置)#broker的全局唯一编号,不能重复,只能是数字。# 每个topic创建时的副本数,默认时1个副本。
2025-09-24 11:24:48
837
原创 zookeeper集群安装部署
是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。(1)重命名/opt/module/zookeeper/conf目录下的zoo_sample.cfg为zoo.cfg。(2)在/opt/module/zookeeper/zkData目录下创建一个myid的文件。(1)在/opt/module/zookeeper/目录下创建zkData。(2)解压Zookeeper安装包到/opt/module/目录下。
2025-09-24 11:20:56
498
原创 数据同步策略选择
在某些情况下效率较低。例如某张表数据量较大,但是每天数据的变化比例很低,若对其采用每日全量同步,则会重复同步和存储大量相同的数据。两种策略都能保证数据仓库和业务数据库的数据同步,那应该如何选择呢?下面对两种策略进行简要对比。通常情况,业务表数据量比较大,优先考虑增量,数据量比较小,优先考虑全量;具体选择由数仓模型决定。逻辑复杂,需要将每日的新增及变化数据同原来的数据进行整合,才能使用。效率高,无需同步和存储重复数据。
2025-09-23 22:11:00
166
原创 数仓开发中遇到的问题(在Hadoop HDFS高可用(HA)集群下两个NameNode节点都是StandBy状态)
这个问题是因为,你有使用ZKFC,即你有zookeeper,但是在你打开虚拟机开始运行各个组件的时候没有先开启zookeeper,而是先开启了Hadoop。先关闭全部集群服务,然后再次启动的时候记得先开启zookeeper,再开启Hadoop集群。
2025-09-23 22:08:04
183
原创 数仓建立过程中遇到的问题(Operation category READ is not supported in state standb)
核心报错是Operation category READ is not supported in state standby,表明您尝试从HDFS的Standby节点读取数据。你可以先在active节点下停止namenode的运行,这样之前那个stantby节点会自动被转换成active节点,之后再重启之前关闭的节点,即可解决该问题。在HA模式下,HDFS集群会有Active/Standby两个NameNode,只有Active节点才能处理读写请求。在使用datax 过程中遇到问题。
2025-09-23 22:03:26
242
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅