【字节跳动】查询每天最早登录用户的内容喜好
JOIN 连接窗口函数日期函数ORDER BYDISTINCT用户行为分析面试真题
题目描述
来源:字节跳动 SQL 面试真题
某产品需要结合用户登录信息和用户喜好评分信息,查询每天最早登录用户的内容喜好。
数据表
login_tb 用户登录信息表
| 字段 | 类型 | 说明 |
|---|---|---|
| log_id | BIGINT | 登录动作 ID |
| user_id | BIGINT | 用户 ID |
| log_time | DATETIME | 登录时间 |
user_action_tb 用户信息及评分信息表
| 字段 | 类型 | 说明 |
|---|---|---|
| user_id | BIGINT | 用户 ID |
| hobby | VARCHAR | 用户内容喜好标签 |
| score | DECIMAL | 用户对平台推荐内容的评分 |
题目要求
- 按日历日查找当天登录时间最早的用户。
- 如果当天有多个用户在同一最早时间登录,这些用户都需要输出。
- 同一用户存在重复的最早登录流水时,只输出该用户一次。
- 输出登录日期、用户 ID 和用户内容喜好。
- 按日期升序排列;同一天内按用户 ID 升序排列。
期望输出列
| 列名 | 说明 |
|---|---|
| log_day | 登录日期 |
| user_id | 当天最早登录的用户 ID |
| hobby | 用户内容喜好标签 |
数据样例
| log_idPKBIGINT | user_idBIGINT | log_timeDATETIME |
|---|---|---|
| 101 | 101 | 2022-02-06 07:24:00 |
| 102 | 102 | 2022-02-06 07:24:00 |
| 103 | 103 | 2022-02-06 09:36:00 |
| 104 | 102 | 2022-02-07 09:37:00 |
| 105 | 103 | 2022-02-07 12:01:00 |
| 106 | 101 | 2022-02-07 12:23:00 |
| 107 | 102 | 2022-02-08 08:37:00 |
| 108 | 103 | 2022-02-09 10:43:00 |
输入数据显示 8 / 9 行
SQL 编辑器正在保存草稿...
Ctrl + Enter 运行
正在加载 SQL 编辑器...
运行你的 SQL 查询后,结果将显示在这里