2025-01 美团 中等

请编写SQL查询,根据以下规则找到所有RFM总评分为9分的用户,并确定这些用户最爱去的前三家餐厅:

  • Recency (R):使用NTILE(3)函数将用户按距离今天的天数分为三类。注意这里按照天数降序排列,因为Recency得分越低表示用户越近进行了购买。
  • Frequency (F):使用NTILE(3)函数将用户按有下单记录的不同天数分为三类。
  • Monetary (M):使用NTILE(3)函数将用户按每次交易的平均消费金额降序排列后分成三类。
  • 计算每位用户的RFM总分,并筛选出那些总分恰好为9分的用户。
  • 对于这些用户,找出他们最爱去的前三家餐厅(即访问次数最多的前三家餐厅)。

输出:

  • 所有RFM总评分为9分的用户ID (user_id) 及其对应的 recency_scorefrequency_score, 和 monetary_score
  • 这些用户的最爱去的Top3餐厅列表,找Top3时用Row_number排序。

RFM模型 聚合函数 group by inner join avg case when row_number distinct count datediff + current_date group_concat <= ntile

mt_trx_rcd_f,餐饮商户团购消费记录表

cust_uid trx_amt mch_nm mch_typ2 trx_dt
MT10008 132 阿里山烘焙坊(亚贸店) 面包甜点 2024-05-03
MT10000 53 星巴克(融创茂店) 咖啡厅 2024-09-16
MT10007 334 老胶东小船海鲜 海鲜 2024-05-22
MT10004 358 一枚帅哥做的菜 海鲜 2024-09-15
MT10003 154 一枚帅哥做的菜 海鲜 2024-11-16

 

 成为会员,解锁300道大厂数分SQL真题

ID317 基于消费天数和平均消费金额NTILE分组计算每个用户的RFM评分  
中等 group by inner join avg case when distinct count datediff current_date ntile 聚合函数 RFM模型 美团
ID320 总分为9分的所有用户  
中等 group by inner join avg case when distinct count datediff + current_date ntile 聚合函数 RFM模型 美团
ID322 4分及以下客户去的最后一家餐厅  
困难 group by inner join avg case when row_number distinct count datediff + current_date group_concat <= = ntile 聚合函数 窗口函数 RFM模型 美团
ID323 统计每一类RFM用户的数量  
困难 group by inner join avg case when distinct count datediff + concat current_date group_concat ntile 聚合函数 窗口函数 RFM模型 美团
ID324 找出流失风险客户(R=1且F<=2)  
中等 group by inner join avg case when distinct count datediff + concat current_date group_concat <= = ntile 聚合函数 窗口函数 RFM模型 美团

MySQL 8.0

00:00