关注
用户的SQL查询存在两个关键问题,导致无法准确获取每个用户最近登录的设备信息:
1. 分组逻辑错误导致设备信息不准确
当前查询直接对`u.name`分组,但`client_id`未参与分组。当用户在同一天用不同设备登录时,会随机返回一个设备名称(如示例中fh在2020-10-13可能用ios和pc两种设备登录,但查询只会显示其中一个)。
错误示例:
```sql
GROUP BY u.name -- 错误的分组字段
```
2. 未关联最近日期对应的设备信息
`MAX(date)`只能获取最近日期,但未明确该日期对应的`client_id`。正确做法需要先找到每个用户最近登录的完整记录(含日期和设备),再关联设备名称。
---
### 修正后的SQL方案
```sql
SELECT
u.name AS u_n,
c.name AS c_n,
l.date
FROM (
SELECT
user_id,
client_id,
date,
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY date DESC) AS rn
FROM login
) AS l
JOIN user AS u ON l.user_id = u.id
JOIN client AS c ON l.client_id = c.id
WHERE l.rn = 1
ORDER BY u.name ASC;
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习要如何选择和准备? #
48425次浏览 763人参与
# 大疆求职进展汇总 #
473372次浏览 3181人参与
# 摸鱼被leader发现了怎么办 #
45725次浏览 319人参与
# 学历or实习经历,哪个更重要 #
89570次浏览 649人参与
# 潍柴工作体验 #
21623次浏览 18人参与
# 你最满意的offer薪资是哪家公司? #
19940次浏览 120人参与
# 你觉得通信/硬件有必要实习吗? #
96432次浏览 893人参与
# Offer比较,求稳定还是求发展 #
43462次浏览 228人参与
# 来聊聊机械薪资天花板是哪家 #
114224次浏览 721人参与
# 找工作,行业重要还是岗位重要? #
21039次浏览 367人参与
# 硬件兄弟们 甩出你的华为奖状 #
97221次浏览 670人参与
# 金融财会交流会 #
102825次浏览 361人参与
# 机械人与华为的爱恨情仇 #
107332次浏览 923人参与
# 24届硬件人与华为的爱恨情仇 #
121912次浏览 962人参与
# 机械人怎么评价今年的华为 #
192333次浏览 1502人参与
# 运营面经 #
103033次浏览 1202人参与
# 外包能不能当跳板? #
27049次浏览 192人参与
# 实习工作,你找得还顺利吗? #
396930次浏览 5413人参与
# 国企/银行/研究所公司爆料 #
125706次浏览 742人参与
# 机械专业只有考研才有出路吗 #
97148次浏览 850人参与