大数据开发面经汇总【持续更新...】
我的大数据学习之路
大数据开发面试笔记V6.0
来自字节跳动数据研发二面
insert into ods_usr_log(user_id, start_time, end_time) values
(1, '09:01', '10:30'),
(2, '08:10', '09:08'),
(3, '10:20', '11:00'),
(4, '12:00', '13:00'),
(5, '11:30', '11:59')
难点:如何对交叉区间进行合并
select
group_id
,min(start_time) as start_time
,max(end_time) as end_time
from (
select
start_time
,end_time
,sum(flag) over (order by start_time, end_time) as group_id
from (
select
start_time
,end_time
,case when start_time <= lst_end_time then 0 else 1 end as flag
from (
select
start_time
,end_time
,lag(end_time, 1, end_time) over (order by start_time asc, end_time asc) as lst_end_time
from ods_user_log
) t
) t
) t
group by group_id
;
#数据人的面试交流地##校招过来人的经验分享#