SQL刷题
NULL PTR
这个作者很懒,什么都没留下…
展开
-
SQL面试题挑战14:每年的在校人数
year表示学生入学年度,num表示对应年度录取学生人数,stu_len表示录取学生的学制;说明:例如录取年度2018学制是3年,表示该批学生在校年份为2018~2019、2019~2020、2020~2021,在算每年的在校人数时,2018/2019/2020/2021年份都需要算上。原创 2024-02-23 10:55:55 · 262 阅读 · 0 评论 -
SQL面试题挑战13:分组topN
下面是某个班级的成绩表,需要筛选出每个科目前2名的学生信息。如果分数一样,名次是并列的,后面的同学名次就不连续。比如有2个同学是第一名,那么下一个同学的名次就是第3名,呈现1,1,3的名次排列。原创 2024-02-23 10:34:29 · 186 阅读 · 1 评论 -
SQL面试题挑战12:计算部门的平均工资
现在要计算每个部门的平均工资(工资和/员工数),但是要去掉部门的最高工资和最低工资(如果一个部门最高或最低工资有并列的,去掉一个最高的和一个最低的)后,计算部门的平均工资。原创 2024-02-23 10:23:11 · 239 阅读 · 1 评论 -
SQL面试题挑战11:访问会话切割
如下为某电商公司用户访问网站的数据,包括用户id和访问时间两个字段。现有如下规则:如果某个用户的连续的访问记录时间间隔小于60秒,则属于同一个会话,现在需要计算每个用户有多少个会话。比如1001用户在第0秒,50秒,150秒有三次访问记录,则该用户有2个会话,其中第一个会话是第0秒和第50秒的记录,第二个会话是第150的记录。原创 2024-02-22 11:34:03 · 383 阅读 · 1 评论 -
SQL面试题挑战10:累计占比
现在有一张每个年份的每个部门的收入表。现在需要算每个部门的收入占同类型部门的收入的占比和当年整个公司的收入占比。要求一条SQL计算出来。比如研发部和产品部属于同类型的,都是产研;财务部和人事部都属于职能。原创 2024-02-22 11:17:18 · 283 阅读 · 1 评论 -
SQL面试题挑战09:有效值追溯
现在有一张商品入库表,包括商品id、商品成本和入库日期3个字段,由于某些原因,导致部分商品的成本缺失(为0或者没有值都是缺失),这样不利于我们计算成本。所以现在要把缺失的商品进价补充完整,补充的依据是使用相同商品的最近一次有效成本作为当前商品的成本。比如2023-11-04号101商品的cost就需要用300.39填充。。原创 2024-02-22 11:04:16 · 268 阅读 · 1 评论 -
SQL面试题挑战08:补全缺失日的月销售累计
现有一张员工的销售记录表,表样式如下图。现在需要统计每个员工在2021年10月份,截止到每天的月累计销售额。注意:存在有的员工在某几天是没有销售记录的。补全后。原创 2024-01-31 19:37:22 · 216 阅读 · 0 评论 -
SQL面试题挑战07:间隔连续问题
下面是某游戏公司记录的用户每日登录数据, 计算每个用户最大的连续登录天数,定义连续登录时可以间隔一天。举例:如果一个用户在 1,3,5,6,9 登录了游戏,则视为连续 6 天登录。原创 2024-01-31 19:04:40 · 247 阅读 · 1 评论 -
SQL面试题挑战06:互相关注的人
现在有一张relation表,里面只有两个字段:from_user和to_user,代表关注关系从from指向to,即from_user关注了to_user。现在要找出互相关注的所有人。原创 2024-01-31 18:31:17 · 200 阅读 · 0 评论 -
SQL面试题挑战05:找出恶意购买用户
下面是某电商网站的订单数据,包括order_id,user_id,order_status和operate_time四个字段,我们需要找出所有恶意购买的用户。恶意购买的用户定义是:同一个用户,在任意半小时内(含),取消订单次数>=3次的就被视为恶意买家。比如该样例数据中c用户就是恶意买家。原创 2024-01-30 16:50:17 · 19 阅读 · 1 评论 -
SQL面试题挑战04:找出使用相同ip的用户
现在有一张用户登陆日志表,该表包括user_id,ip,log_time三个字段,现在需要找出共同使用ip数量超过3个(含)的所有用户对。比如下面的示例数据,101和102用户共同使用的ip为4个,101和103用户共同使用的ip为3个,102和103用户共同使用的ip为3个。原创 2024-01-30 16:12:22 · 17 阅读 · 1 评论 -
SQL面试题挑战03:奖金瓜分问题
在活动大促中,有玩游戏瓜分奖金环节。现有奖金池为3000元,代表奖金池中的初始额度。表中的数据代表每一个用户和其对应的得分,user_id和score都不会有重复值。瓜分奖金的规则如下:按照score从高到低依次瓜分,每个人都能分走当前奖金池里面剩余奖金的一半,当奖金池里面剩余的奖金少于500时(不含),则停止瓜分奖金。现在需要查询出所有分到奖金的user_id和其对应的奖金。原创 2024-01-30 15:44:30 · 359 阅读 · 1 评论 -
SQL面试题挑战02:同时最大在线人数问题
求平台最高峰期同时在线的主播人数。原创 2024-01-30 15:16:47 · 215 阅读 · 1 评论 -
SQL面试题挑战01:打折日期交叉问题
计算每个品牌的打折销售天数(注意其中的交叉日期)原创 2024-01-29 21:01:32 · 151 阅读 · 0 评论