本题是美团数据开发面试真题,视频讲解链接如下:https://www.bilibili.com/video/BV19B4y137ZZ/?vd_source=8b5224face24d524fb76850904923f04
原题简化描述如下,有一张表记录了每个用户吃过的每一家餐厅。
user_id | restaurant_id |
---|---|
a | 1 |
a | 2 |
a | 3 |
b | 2 |
b | 3 |
b | 4 |
b | 5 |
c | 1 |
c | 3 |
e | 4 |
e | 5 |
e | 6 |
如a吃过1、2、3;d吃过1;b吃过2、3、4、5;c吃过1、3;d吃过1。
定义共同吃过2家及以上餐厅的为相似用户。
- a和b都吃过2、3,那他们可能有相同的兴趣,可以给a推荐4、5;给b推荐1
- a和c都吃过1、3,可以给c推荐他没吃过的2
- d和任何人都不相似,d不获得任何推荐。
- 最终给a推荐4、5;给b推荐6;给c推荐2;d不获得任何推荐;给e推荐2、3。
我们一步步来,最终实现一个完整的推荐列表。
本题需求如下:输出cust_uid(MT10000)、cust_uid_1、mch_nm(兰州李晓明拉面馆)三列,按照第二列升序排序。
该输出的每一行表示,MT10000和每一个cust_uid_1,都是吃过兰州李晓明拉面馆的同店。
(同在一个学校叫同学、前现男友是同道啊哈哈哈哈)
mt_trx_rcd1,美团用户交易订单表
trx_seq | cust_uid | trx_dt | trx_amt | mch_nm | mch_typ1 | mch_typ2 |
---|---|---|---|---|---|---|
1016 | MT10008 | 2021-06-19 | 374 | 兰州李晓明拉面馆 | 餐饮 | 小吃快餐 |
1078 | MT10020 | 2021-04-01 | 3 | 串部落麻辣龙虾(陵园店) | 餐饮 | 小龙虾 |
866 | MT10005 | 2021-03-03 | 230 | 申时咖啡馆(高新店) | 餐饮 | 咖啡厅 |
848 | MT10005 | 2021-04-13 | 209 | 喵哆哆串串香(双井店) | 餐饮 | 火锅 |
763 | MT10003 | 2021-10-02 | 349 | 兰州李晓明拉面馆 | 餐饮 | 小吃快餐 |
 成为会员,解锁300道大厂数分SQL真题
MySQL 8.0