WITH TMP AS
(SELECT user_id,DATE_FORMAT(start_time,'%Y-%m-%d') BEG_MTN
FROM hello_bike_riding_rcd
),
TMP1 AS
(
SELECT distinct A.*
FROM (SELECT user_id,
COUNT(1) OVER(PARTITION BY user_id,BEG_MTN) CT,
BEG_MTN
FROM TMP
)A
WHERE A.CT >= 5
)
SELECT DISTINCT A.user_id,case when B.BEG_MTN IS NOT NULL AND C.BEG_MTN IS NOT NULL THEN '1' ELSE '0' END ASactive_tag
FROM TMP1 A
left JOIN (SELECT user_id,BEG_MTN FROM TMP1) B
ON A.user_id = B.user_id
AND B.BEG_MTN =
DATE_ADD(DATE_FORMAT(A.BEG_MTN,'%Y-%m-%d'),INTERVAL -1 MONTH)
left JOIN (SELECT user_id,BEG_MTN FROM TMP1) C
ON A.user_id = C.user_id
AND C.BEG_MTN =
DATE_ADD(DATE_FORMAT(A.BEG_MTN,'%Y-%m-%d'),INTERVAL -2 MONTH)