当前位置 博文首页 > 执剑问道的博客:顺丰大数据面试题-2021
第一题求助CSDN技术人员解决的:
select C.customtrade,group_concat(C.mid) from
(
select A.customtrade,
case when LOCATE(B.customtrade,A.customtrade) >0 then id
else '0' end mid
from A,B
) C where mid!=0 group by C.customtrade
第二题建表,求连续三天的数。原表所示:
select u2.* from
(select u1.id,u1.num,(lead(u1.id,2)over(partition by u1.num
order by u1.rn)-u1.rn)df
from ( select id, num,row_number()over(partition by num order by id) rn
from user11 group by num,id)u1 group by u1.id,u1.num,u1.rn)u2
where u2.df=2;
df是lead位移后2位,与ID相减得出的差值,如果数是连续的,则为一样的值。
第三题用dense_rank,也有说rank的,题记不清了。rank是可以跳过并列的,像第一与第二一样的话会并列,则会没有第二序号的。