有序行转列

MST 

一、题目 有学生各学科分数表,记录了学生的各科分数,请按照学生粒度,生成两列数据分别为学科和分数,要求学科内的顺序与分数顺序一致。 数据样例: 二、思路 这是一个行转列的典型问题,目标是将张三的三条记录合并为一条。根据题意最终的数据是这个样子:张三 语文,数学,英语 95,80,82。 要处理这

每年成绩都有所提升的学生

MST 

一、题目 一张学生成绩表(student_scores),有year-学年,subject-课程,student-学生,score-分数这四个字段,请完成如下问题: 问题1:每年每门学科排名第一的学生 问题2:每年总成绩都有所提升的学生 数据如下 二、思路 问题1:每年每门学科排名第一的学生。这个问

近30天连续登陆3天以上次数-非开窗

MST 

一、题目 有用户登录记录,已经按照日期去重。求近三十天,用户连续登录超过3天的次数,一直连续登录算一次,有间隔然后重新计算次数, 要求不能用开窗。 数据样例如下: 二、思路 这是一个连续问题:连续问题的解决思路是找到日期和升序序号差值相同的记录,相同则表示日期连续,不同则日期不连续。题目强调不能使用

查询每个学科第三名的学生的学科成绩总成绩及总排名

MST 

一、题目 有学生成绩表,包含学生姓名、学科、成绩三个字段,请用一条SQL查询出每个学科排名第三名的学生,他的学科成绩、总成绩、以及总排名。 二、思路 第一步:计算学科排名和总成绩,可以使用rank和sum的开窗函数实现 第二步:计算总成绩排名,可以使用dense_rank实现

连续点击三次以上的用户

MST 

一、题目 有用户点击日志记录表 user_click_log,包含user_id(用户ID), click_time(点击时间),请查询出连续点击三次以上的用户数, 连续点击三次:指点击记录中同一用户连续点击,中间无其他用户点击; 二、思路 看下图总结一下规律:如果一个用户连续点击中间没有其他用户,

各用户最长的连续登录天数-可间断

MST 

一、题目 现有各用户的登录记录表zbj_login_events如下,表中每行数据表达的信息是一个用户何时登录了平台。 现要求统计各用户最长的连续登录天数,间断一天也算作连续,例如:一个用户在1,3,5,6登录,则视为连续4天登录。 二、思路 这是

处理缺失值

MST 

一、题目 现有用户账户表,包含日期、用户id、用户余额,其中用户余额发生了缺失,需要进行补全。补全规则:如果余额为空则取之前最近不为空值进行填补。如果截止到最早日期都为空则补0; 二、思路 题目要求使用当天之前的余额进行补全,需要明确一点不是取前面一天而是取前面最近的不为空的余额。所以首先需要知道前

查询每个产品每年总销售额

MST 

一、题目 已知有表如下,记录了每个产品id、产品名称、产品销售开始日期、产品销售结束日期以及产品日均销售金额,请计算出每个产品每年的销售金额。 二、思路 要计算每个产品每年的销售金额,需要得到每年的销售明细,观察数据可以发现有销售开始和结束日期,可以借此得到每个产品每天的销售额,lateral vi

奖金瓜分问题

MST 

一、题目 在活动大促中,有玩游戏瓜分奖金环节。现有奖金池为 10000元,代表奖金池中的初始额度。用户的分数信息如下表。表中的数据代表每一个用户和其对应的得分,user_id 和 score 都不会有重复值。瓜分奖金的规则如下:按照 score 从高到低依次瓜分,每个人都能分走当前奖金池里面剩余奖金

hive3.1.3安装配置指南


环境准备 1. 前置条件 Hadoop集群:Hadoop 3.2.4(已正常启动) Java:JDK 8 数据库:MySQL(用于存储元数据) 2. 下载Hive wget https://archive.apache.org/dist/hive/hive-3.1.3/ap