【京东】查询未下单用户最多的注册渠道
WHERE 条件聚合函数GROUP BY子查询ORDER BYLIMIT用户行为分析排行榜面试真题
题目描述
来源:京东 SQL 面试真题
某支付平台记录了用户信息和用户创建订单的客户端日志。请统计未下单用户中人数最多的注册渠道。
数据表
order_log 创建订单日志表
| 字段 | 类型 | 说明 |
|---|---|---|
| order_id | VARCHAR(50) | 订单号 |
| uid | BIGINT | 用户 ID |
| logtime | DATETIME | 日志采集时间 |
| time | DATETIME | 客户端记录时间 |
| product_id | VARCHAR(50) | 商品 ID |
| pay_method | VARCHAR(20) | 支付方式 |
user_info 用户信息表
| 字段 | 类型 | 说明 |
|---|---|---|
| order_id | VARCHAR(50) | 用户信息记录标识 |
| uid | BIGINT | 用户 ID |
| channel | VARCHAR(50) | 用户注册渠道 |
统计口径
- 如果
user_info.uid没有出现在order_log.uid中,则该用户属于未下单用户。 - 按未下单用户的
channel分组,统计每个渠道的去重用户数。 - 只返回未下单用户数量最多的一个渠道。
- 如果多个渠道人数相同,按渠道名称升序取第一个。
期望输出列
| 列名 | 说明 |
|---|---|
| channel | 未下单用户最多的注册渠道 |
数据样例
| order_idVARCHAR(50) | uidBIGINT | logtimeDATETIME | timeDATETIME | product_idVARCHAR(50) | pay_methodVARCHAR(20) |
|---|---|---|---|---|---|
| ORD001 | 101 | 2022-01-01 10:00:00 | 2022-01-01 10:00:00 | P100 | wx |
| ORD002 | 102 | 2022-01-01 10:05:00 | 2022-01-01 10:05:00 | P101 | alipay |
| ORD002 | 102 | 2022-01-01 10:05:01 | 2022-01-01 10:05:01 | P101 | alipay |
| ORD003 | NULL | 2022-01-01 10:10:00 | 2022-01-01 10:10:00 | P102 | NULL |
输入数据显示 4 / 4 行
SQL 编辑器正在保存草稿...
Ctrl + Enter 运行
正在加载 SQL 编辑器...
运行你的 SQL 查询后,结果将显示在这里