题目一:计算平台的每一个用户发过多少朋友圈、获得多少点赞
已知,数据如下:
T1:数十万行数据
需求:请用sql计算出如下结果:
SELECT
t1.uid,
count(t1.log_id),
sum(a.count_like_uid)
from
t1 LEFT join
(select log_id,count(like_uid) as count_like_uid from t2 group by log_id)a
on t1.log_id=a.log_id GROUP BY uid;
题目二:处理产品版本号
版本号信息存储在数据表中,每行一个版本号。
版本号命名规则如下:
产品版本号由三个部分组成
如:9.11.2
第一部分9为主版本号,为1-99之间的数字;
第二部分11为子版本号,为0-99之间的数字;
第三部分2为阶段版本号,为0-99之间的数字(可选);
请根据具体条件和问题,使用hive sql编程:
1.条件:T1表有100个版本号,找出其中最大的版本号。
举例:
T1:
select
v_id
from
(
select
v_id,
dense_rank() over(order by one desc ,two desc,three desc) as rn
from
(select
id,
cast(split(v_id,"\\.")[0] as int) as one,
cast(split(v_id,"\\.")[1] as int) as two,
cast(split(v_id,"\\.")[2] as int) as three
from
t1)t2)t3
where rn=1
2.条件:T1表有1000万个版本号,给如下格式的所有版本号排序。对于相同的版本号,顺序号一致。
table_result (排序结果表) :