- 3
- 0
- 约4.38千字
- 约 11页
- 2026-05-07 发布于四川
- 举报
2025年数据分析师高级面试及模拟题答案详解
一、技术基础与工具应用
(1)请用SQL写出用户连续活跃天数的计算逻辑。假设表结构为user_log(user_id,log_date),要求输出user_id、连续活跃天数最大值。
解答:连续活跃天数的核心是识别连续日期的分组。可通过将log_date与row_number()提供的序号相减,相同差值的日期属于同一连续周期。具体步骤:
①对每个用户按日期排序,计算日期与行号的差值(日期转天数后相减);
②按user_id和差值分组,计算每组的记录数(即连续天数);
③取每个用户的最大连续天数。
示例代码:
WITHranked_logAS(
SELECTuser_id,log_date,
DATE(log_date)INTERVALROW_NUMBER()OVER(PARTITIONBYuser_idORDERBYlog_date)DAYASgrp
FROMuser_log
)
SELECTuser_id,MAX(continuous_days)ASmax_continuous_days
FROM(
SELECTuser_id,grp,COUNT()AScontinuous_days
FROMranked_lo
原创力文档

文档评论(0)