本题是美团数据开发面试真题,视频讲解链接如下: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。
我们一步步来,最终实现一个完整的推荐列表。
本题需求如下:找出用户MT10000消费过的所有餐厅。
输出cust_uid(都是MT10000)、mch_nm两列即可,按mch_nm升序排序
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 | 兰州李晓明拉面馆 | 餐饮 | 小吃快餐 |
输出如下字段。
| cust_uid | mch_nm |
|---|---|
| MT10000 | 520烧烤店 |
| MT10000 | 一枚帅哥做的菜 |
| MT10000 | 侗侗面馆(洛社店) |
| MT10000 | 俏媳妇时尚自助火锅(土门店) |
| MT10000 | 兰州李晓明拉面馆 |
| MT10000 | 品众素心素食餐厅 |
 点击下方空白区域即可查看参考答案
MySQL 8.0