排名
用户解题统计
过去一年提交了
勋章 ①金银铜:在竞赛中获得第一二三名;②好习惯:自然月10天提交;③里程碑:解决1/2/5/10/20/50/100/200题;④每周打卡挑战:完成每周5题,每年1月1日清零。
收藏
| 收藏日期 | 题目名称 | 解决状态 |
|---|---|---|
| 没有收藏的题目。 | ||
评论笔记
| 评论日期 | 题目名称 | 评论内容 | 站长评论 |
|---|---|---|---|
| 没有评论过的题目。 | |||
提交记录
| 提交日期 | 题目名称 | 提交代码 |
|---|---|---|
| 2024-12-26 | Halo出行-通勤活跃用户标签开发  |
WITH MONTH_ACTIVE AS (
SELECT
USER_ID,
MONTH_TIMESTAMP,
ROW_NUMBER() OVER (PARTITION BY USER_ID ORDER BY MONTH_TIMESTAMP) AS RN
FROM
(
SELECT
T1.USER_ID,
DATE_FORMAT(T1.START_TIME, '%Y-%m-01') AS MONTH_TIMESTAMP,
COUNT(DISTINCT DATE_FORMAT(T1.START_TIME, '%Y-%m-%d')) AS DAY_CNT
FROM
hello_bike_riding_rcd T1
LEFT JOIN gd_loc_map T2 ON T1.START_LOC = T2.LOC_NM
LEFT JOIN gd_loc_map T3 ON T1.START_LOC = T3.LOC_NM
WHERE
DATE_FORMAT(T1.START_TIME, '%Y-%m-%d') BETWEEN '2020-01-01' AND '2024-12-31'
AND T3.LOC_TYPE <> T2.LOC_TYPE
AND T2.LOC_TYPE IN ('写字楼', '地铁站')
AND T3.LOC_TYPE IN ('写字楼', '地铁站')
GROUP BY
T1.USER_ID, DATE_FORMAT(T1.START_TIME, '%Y-%m-01')
HAVING DAY_CNT >= 5
) T4
),
ACTIVE_USER AS (
SELECT T1.USER_ID
FROM MONTH_ACTIVE T1
LEFT JOIN MONTH_ACTIVE T2 ON T1.USER_ID = T2.USER_ID AND T1.RN + 2 = T2.RN
WHERE DATEDIFF(STR_TO_DATE(T2.MONTH_TIMESTAMP, '%Y-%m-%d'), STR_TO_DATE(T1.MONTH_TIMESTAMP, '%Y-%m-%d')) = 2
GROUP BY T1.USER_ID
)
SELECT
T1.USER_ID AS user_id,
CASE
WHEN T2.USER_ID IS NULL THEN 0
ELSE 1
END AS active_tag
FROM
(SELECT USER_ID FROM hello_bike_riding_rcd GROUP BY USER_ID) T1
LEFT JOIN ACTIVE_USER T2 ON T1.USER_ID = T2.USER_ID;
|
| 2024-12-26 | Halo出行-通勤活跃用户标签开发  |
WITH MonthlyActive AS (
SELECT
T1.USER_ID,
DATE_FORMAT(T1.START_TIME, '%Y-%m-01') AS MONTH_TIMESTAMP,
COUNT(DISTINCT DATE_FORMAT(T1.START_TIME, '%Y-%m-%d')) AS DAY_CNT
FROM
hello_bike_riding_rcd T1
LEFT JOIN gd_loc_map T2 ON T1.START_LOC = T2.LOC_NM
LEFT JOIN gd_loc_map T3 ON T1.START_LOC = T3.LOC_NM
WHERE
DATE_FORMAT(T1.START_TIME, '%Y-%m-%d') BETWEEN '2020-01-01' AND '2024-12-31'
AND T3.LOC_TYPE <> T2.LOC_TYPE
AND T2.LOC_TYPE IN ('写字楼', '地铁站')
AND T3.LOC_TYPE IN ('写字楼', '地铁站')
GROUP BY
T1.USER_ID, DATE_FORMAT(T1.START_TIME, '%Y-%m-01')
HAVING DAY_CNT >= 5
),
ConsecutiveMonths AS (
SELECT
user_id,
MONTH_TIMESTAMP,
LAG(MONTH_TIMESTAMP, 1) OVER (PARTITION BY user_id ORDER BY MONTH_TIMESTAMP) AS prev_month1,
LAG(MONTH_TIMESTAMP, 2) OVER (PARTITION BY user_id ORDER BY MONTH_TIMESTAMP) AS prev_month2
FROM
MonthlyActive
)
SELECT
DISTINCT T.user_id
, CASE
WHEN TT.USER_ID IS NOT NULL THEN 1
ELSE 0
END AS active_tag
FROM hello_bike_riding_rcd T
LEFT JOIN
(
SELECT
user_id
FROM
ConsecutiveMonths
WHERE
(
(MONTH(MONTH_TIMESTAMP) - MONTH(prev_month1) = 1 AND MONTH(prev_month1) - MONTH(prev_month2) = 1)
OR
(MONTH(MONTH_TIMESTAMP) - MONTH(prev_month1) = 1 AND prev_month2 IS NULL)
OR
(prev_month1 IS NULL AND prev_month2 IS NULL)
)
GROUP BY
user_id
) TT ON T.USER_ID = TT.USER_ID
|
| 2024-12-26 | Halo出行-通勤活跃用户标签开发  |
select distinct user_id ,0 as active_tag from hello_bike_riding_rcd T1 WHERE DATE_FORMAT(T1.START_TIME, '%Y-%m-%d') BETWEEN '2020-01-01' AND '2024-12-31' |
| 2024-12-26 | Halo出行-通勤活跃用户标签开发  |
select distinct user_id ,0 as active_tag from hello_bike_riding_rcd T1 WHERE DATE_FORMAT(T1.START_TIME, '%Y-%m-%d') BETWEEN '2020-01-01' AND '2024-12-31' limit 5 |