select
name,
cnt
from
(
select
name,
time,
count(*) cnt
from
(
select
name,
date,
substr(date_add(date ,INTERVAL -rn DAY ),1,10) time
from
(
select
name,
date,
ROW_NUMBER() over(partition by name order by date) rn -- 生成自增序列
from employee
) a
) b group by name,time
HAVING count(*) >=3 -- 连续 N 天
) finally
SQL3,5,7天日活
于 2023-03-20 11:20:48 首次发布