排名

用户解题统计

过去一年提交了

勋章 ①金银铜:在竞赛中获得第一二三名;②好习惯:自然月10天提交;③里程碑:解决1/2/5/10/20/50/100/200题;④每周打卡挑战:完成每周5题,每年1月1日清零。

收藏

收藏日期 题目名称 解决状态
2025-01-03 招建银行信用卡中心客户挽留-电商平台分类  已解决
2025-01-03 深圳气温异常年份  已解决
2024-12-17 查询所有终点是餐饮类地点的行程记录  已解决
2024-11-29 条件过滤-查找2009年出生的女学生  已解决
2024-11-18 从商品角度统计收藏到购买的转化率  已解决
2024-11-18 餐厅的用户复购率  已解决
2024-11-18 餐饮类别丰富度标签  已解决

评论笔记

评论日期 题目名称 评论内容 站长评论
2024-11-27 被收藏次数最多的商品 
应该是题主搞错了吧,两张表的字段名不一样
啥也没说
2024-11-27 小宇宙电台的同期群分析 
我刚用GPT秒了30多道题。。为啥这题搞不定
同学你用GPT作弊有啥用呢。。
2024-11-18 子查询(1)玩的最嗨那天在做甚?要用Where子查询 
思路新奇,被你整笑了哥
啥也没说
2024-11-17 招建银行信用卡中心客户挽留-电商平台分类 
这题没啥技术含量,全靠百度搜索,😜
谁说没技术含量的。
1、商户那么多,难道你要枚举吗?
2、你是对全量交易描述分类还是去重后分类(影响运行时间)
2024-11-17 赌王争霸赛-盖哥要玩87o 
J4o 还是J4s?站长你没说清楚啊
J4o 你再试试 看能不能到100分 温馨提示 TT 1010

提交记录

提交日期 题目名称 提交代码
2025-04-01 基于共同兴趣爱好的餐厅推荐(3)-好基友(1) 
WITH cust_mch AS (
SELECT cust_uid, mch_nm
FROM mt_trx_rcd1
WHERE mch_nm = '兰州李晓明拉面馆'
GROUP BY cust_uid, mch_nm
),
mt10000_mch AS (
SELECT cust_uid
FROM mt_trx_rcd1
WHERE cust_uid = 'MT10000'
GROUP BY cust_uid
)
SELECT mm.cust_uid,cm.cust_uid AS cust_uid_1,cm.mch_nm
FROM mt10000_mch AS mm
LEFT JOIN cust_mch As cm
ON mm.cust_uid <> cm.cust_uid
ORDER BY cm.cust_uid
2025-04-01 只买iPhone的用户 
SELECT user_id
FROM apple_pchs_rcd
GROUP BY user_id
HAVING SUM(CASE WHEN product_type <> 'iPhone' THEN 1 ELSE 0 END) = 0
ORDER BY user_id
2025-04-01 找出所有以酒店为起点的类别组合的最热门路线 
WITH start_end_cnt AS (
SELECT r.start_loc,r.end_loc,ce.loc_ctg,
 COUNT(*) AS trip_count,
 ROW_NUMBER() OVER(PARTITION BY ce.loc_ctg
 ORDER BY COUNT(*) DESC) AS rnk
FROM didi_sht_rcd AS r
 JOIN loc_nm_ctg AS cs
ON r.start_loc = cs.loc_nm
 JOIN loc_nm_ctg AS ce
ON r.end_loc = ce.loc_nm
WHERE cs.loc_ctg = '酒店'
GROUP BY r.start_loc,r.end_loc,ce.loc_ctg
)
SELECT start_loc,end_loc,loc_ctg,trip_count
FROM start_end_cnt
WHERE rnk = 1
ORDER BY trip_count DESC
2025-04-01 表连接(1)你们难道都去过?那就试试用InnerJoin 
SELECT a.mch_nm
FROM (
SELECT DISTINCT mch_nm
FROM cmb_usr_trx_rcd
WHERE trx_time RLIKE '2024' AND usr_id = 5201314520
) a INNER JOIN
( SELECT DISTINCT mch_nm
 FROM cmb_usr_trx_rcd
 WHERE trx_time RLIKE '2024' AND usr_id = 5211314521
) b
ON a.mch_nm = b.mch_nm
ORDER BY a.mch_nm DESC
2025-04-01 统计每个城市各状态的单量 
SELECT cty, status,COUNT(order_id) AS order_count
FROM hll_t1
GROUP BY cty,status
ORDER BY cty, status
2025-04-01 表连接(1)你们难道都去过?那就试试用InnerJoin 
SELECT mch_nm
FROM cmb_usr_trx_rcd
WHERE trx_time RLIKE '2024'
GROUP BY mch_nm
HAVING COUNT(DISTINCT CASE WHEN usr_id IN (5201314520,5211314521) THEN usr_id ELSE NULL END) = 2 
ORDER BY mch_nm DESC
2025-04-01 分类别的最火直播间 
WITH all_live_rnk AS (
SELECT t1.live_id,t2.live_nm,t2.live_type,COUNT(*) AS enter_cnt,
 ROW_NUMBER() OVER(PARTITION BY t2.live_type
 ORDER BY COUNT(*) DESC) AS rnk
FROM ks_live_t1 AS t1
LEFT JOIN ks_live_t2 AS t2
ON t1.live_id = t2.live_id
WHERE enter_time RLIKE '^2021-09-12 23'
GROUP BY t1.live_id,t2.live_nm,t2.live_type
)
SELECT live_id,live_nm,live_type,enter_cnt
FROM all_live_rnk
WHERE rnk = 1
ORDER BY live_id
2025-04-01 快手面试真题(2)同时在线人数峰值 
WITH usr_act AS (
SELECT usr_id,live_id,enter_time AS event_time,1 AS act
FROM ks_live_t1
UNION ALL
SELECT usr_id,live_id,leave_time AS event_time,-1 AS act
FROM ks_live_t1
ORDER BY live_id,event_time
),
online_users_cnt AS (
SELECT live_id,event_time,
 SUM(act) OVER(PARTITION BY live_id
 ORDER BY event_time) AS online_users
FROM usr_act
),
live_max_online_cnt AS (
SELECT live_id, MAX(online_users) AS max_online_users
FROM online_users_cnt
GROUP BY live_id
ORDER BY max_online_users DESC
)
SELECT lc.live_id,t2.live_nm,lc.max_online_users
FROM live_max_online_cnt AS lc
LEFT JOIN ks_live_t2 AS t2
ON lc.live_id = t2.live_id
ORDER BY max_online_users DESC
2025-04-01 分组与聚合函数(2)擦边营收怎么样,聚合函数可看出 
SELECT DATE(trx_time) AS trx_date,
 MAX(trx_amt) AS max_trx_amt,
 MIN(trx_amt) AS min_trx_amt,
 AVG(trx_amt) AS avg_trx_amt,
 SUM(trx_amt) AS total_trx_amt
FROM cmb_usr_trx_rcd
WHERE mch_nm = '红玫瑰按摩保健休闲'
AND trx_time RLIKE '2024-09'
GROUP BY DATE(trx_time)
ORDER BY 1
2025-04-01 条件过滤(2)半夜活动有猫腻,Hour函数给给力 
SELECT *
FROM cmb_usr_trx_rcd
WHERE usr_id = 5201314520
AND (DATE(trx_time) BETWEEN '2024-09-01' AND '2024-09-30')
AND (TIME(trx_time) >= '01:00:00' AND TIME(trx_time) < '06:00:00')
ORDER BY trx_time
2025-04-01 Halo出行-通勤活跃用户标签开发 
WITH 
user_mon_cnt AS (
SELECT
user_id,
DATE_FORMAT(start_time, '%Y-%m-01') AS mon,
count(*) AS cnt
FROM
hello_bike_riding_rcd
WHERE
(
start_loc IN (
'北京机床研究所',
'凯德广场',
'天启大厦',
'恒通国际商务园',
'瀚海国际大厦',
'西门子大厦'
)
AND end_loc IN ('望京', '望京南', '阜通', '将台西')
)
OR (
start_loc IN ('望京', '望京南', '阜通', '将台西')
AND end_loc IN (
'北京机床研究所',
'凯德广场',
'天启大厦',
'恒通国际商务园',
'瀚海国际大厦',
'西门子大厦'
)
)
GROUP BY
user_id,
mon
HAVING
cnt >= 5
ORDER BY
user_id,
mon
)
SELECT
DISTINCT user_id,
CASE
WHEN user_id IN (
SELECT
user_id
FROM
(
SELECT
*,
DATE_SUB(mon, interval rnk MONTH) AS base_mon
FROM
(
SELECT
user_id,
mon,
ROW_NUMBER() OVER(
PARTITION BY user_id
ORDER BY
mon
) rnk
FROM
user_mon_cnt
) t
) t2
GROUP BY
user_id,
base_mon
HAVING
COUNT(*) >= 3
) THEN 1
ELSE 0
END AS active_tag
FROM
hello_bike_riding_rcd
ORDER BY
user_id;
2025-04-01 小结(2)越花越多是死罪,按月统计Substr 
SELECT
substr(trx_time, 1, 7) AS trx_mon,
count(*) AS trx_cnt,
SUM(trx_amt) AS trx_amt
FROM
cmb_usr_trx_rcd
WHERE
usr_id = 5201314520
AND DATE(trx_time) BETWEEN '2022-11-01' AND '2024-12-31'
AND (
(truncate(trx_amt, 0) RLIKE '.+[89]8'
AND trx_amt > 200
AND HOUR(trx_time) IN (23, 0, 1, 2))
OR upper(mch_nm) RLIKE '.*(足疗|保健|按摩|养生|SPA).*'
)
GROUP BY
trx_mon
ORDER BY
trx_mon;
2025-04-01 不经过第二象限的所有函数 
SELECT *
FROM numbers_for_fun
WHERE (a = 0 AND b = 0 AND c <= 0)
OR (a = 0 AND b > 0 AND c <= 0)
OR (a < 0 AND -b/2*a >= 0 AND c <= 0)
OR (a < 0 AND -b/2*a < 0 AND 4*a*c-b*b >= 0)
ORDER BY id
2025-04-01 时间日期(2)按月统计日花费,一天都不要浪费 
SElECT DISTINCT SUBSTR(a.trx_time,1,7) AS trx_mon,
 last_day(a.trx_time) AS last_day,
 day(last_day(a.trx_time)) AS day_of_mon
FROM cmb_usr_trx_rcd AS a LEFT JOIN cmb_mch_typ AS b
ON a.mch_nm = b.mch_nm
WHERE a.usr_id = 5201314520 
AND YEAR(a.trx_time) IN (2023, 2024)
AND b.mch_typ = '休闲娱乐'
ORDER BY trx_mon;
2025-04-01 每个视频类型的T+3留存率 
WITH usr_typ AS (
SELECT t20.usr_id,t20.v_id,t20.v_tm,t3.v_typ
FROM bilibili_t20 AS t20
LEFT JOIN bilibili_t3 AS t3
ON t20.v_id = t3.v_id
WHERE t20.v_tm RLIKE '^2021-02-0[5678]'
)
SELECT ta.v_typ,
 COUNT(DISTINCT ta.usr_id) AS total_views,
 COUNT(DISTINCT tb.usr_id) AS retained_users,
 CAST(COUNT(DISTINCT tb.usr_id) / COUNT(DISTINCT ta.usr_id)*100 AS decimal(5,2)) AS retention_rate
FROM usr_typ AS ta
LEFT JOIN usr_typ AS tb
ON ta.usr_id = tb.usr_idAND 
 DATEDIFF(tb.v_tm,ta.v_tm)BETWEEN 1 AND 3
WHERE ta.v_tm RLIKE '^2021-02-05'
GROUP BY ta.v_typ
ORDER BY retention_rate DESC
2025-04-01 窗口函数(1)年度前三和每月前三,搞懂排序窗口函数 
WITH year_top_merchants AS (
SELECT mch_nm,
 SUM(trx_amt) AS sum_trx_amt
FROM cmb_usr_trx_rcd
WHERE usr_id = 5201314520
AND YEAR(trx_time) = 2024
GROUP BY mch_nm
ORDER BY sum_trx_amt DESC
LIMIT 3
),
month_top_merchants AS (
SELECT SUBSTR(trx_time, 1,7) AS trx_mon,
 mch_nm,
 SUM(trx_amt) AS sum_trx_amt,
 ROW_NUMBER() OVER(PARTITION BY SUBSTR(trx_time, 1,7)
ORDER BY SUM(trx_amt) DESC) AS rk
FROM cmb_usr_trx_rcd
WHERE usr_id = 5201314520
AND YEAR(trx_time) = 2024
GROUP BY SUBSTR(trx_time, 1,7), mch_nm
)
SELECT '2024' AS trx_mon,mch_nm,sum_trx_amt
FROM year_top_merchants
UNION
SELECT trx_mon, mch_nm, sum_trx_amt
FROM month_top_merchants
WHERE rk <= 3
2025-04-01 总分超过300分的学生 
SELECT student_id
FROM subject_score
WHERE chinese + math +english >= 300
ORDER BY student_id
2025-04-01 歌曲流行度分析 
SELECT 
    s.song_name,
    COUNT(DISTINCT lr.user_id) AS listeners,
    CASE 
        WHEN COUNT(DISTINCT lr.user_id) > 50 THEN '热门歌曲'
        ELSE '普通歌曲'
    END AS song_popularity
FROM 
    song_info s
JOIN 
    listen_rcd lr ON s.song_id = lr.song_id
GROUP BY 
    s.song_id,s.song_name;
2025-04-01 Halo出行-通勤活跃用户标签开发 
WITH 
user_mon_cnt AS (
SELECT
user_id,
DATE_FORMAT(start_time, '%Y-%m-01') AS mon,
count(*) AS cnt
FROM
hello_bike_riding_rcd
WHERE
(
start_loc IN (
'北京机床研究所',
'中关村电子城',
'凯德广场',
'天启大厦',
'恒通国际商务园',
'瀚海国际大厦',
'西门子大厦'
)
AND end_loc IN ('望京', '望京南', '阜通', '将台西','方恒购物中心')
)
OR (
start_loc IN ('望京', '望京南', '阜通', '将台西','方恒购物中心')
AND end_loc IN (
'北京机床研究所',
'中关村电子城',
'凯德广场',
'天启大厦',
'恒通国际商务园',
'瀚海国际大厦',
'西门子大厦'
)
)
GROUP BY
user_id,
mon
HAVING
cnt >= 5
ORDER BY
user_id,
mon
)
SELECT
DISTINCT user_id,
CASE
WHEN user_id IN (
SELECT
user_id
FROM
(
SELECT
*,
DATE_SUB(mon, interval rnk MONTH) AS base_mon
FROM
(
SELECT
user_id,
mon,
ROW_NUMBER() OVER(
PARTITION BY user_id
ORDER BY
mon
) rnk
FROM
user_mon_cnt
) t
) t2
GROUP BY
user_id,
base_mon
HAVING
COUNT(*) >= 3
) THEN 1
ELSE 0
END AS active_tag
FROM
hello_bike_riding_rcd
ORDER BY
user_id;
2025-04-01 找出酒店-餐饮的最热门路线 
SELECT start_loc, end_loc, COUNT(*) AS trip_count
FROM didi_sht_rcd
WHERE start_loc IN (SELECT loc_nm
FROM loc_nm_ctg
WHERE loc_ctg = '酒店')
AND end_loc IN (SELECT loc_nm
FROM loc_nm_ctg
WHERE loc_ctg = '餐饮')
GROUP BY start_loc,end_loc
ORDER BY 3 DESC
LIMIT 1