mysql - 获取最近的记录,按 2 个日期汇总?
问题描述
有一张UsersEntry
桌子
id | UID | RelationshipID | Value1 | ModDate | CreateDate
UID 可以在此表中插入多次(每个关系 ID 一次)。ModDate 在创建时为空,因此可能具有以下内容
1 | 5 | 1 | 100 | null | 2020-03-16 01:59:29
2 | 5 | 10 | 100 | 2021-03-01 01:59:29 | 2020-03-16 01:59:29
3 | 5 | 30 | 100 | 2021-03-16 01:59:29 | 2020-03-16 01:59:29
4 | 8 | 30 | 100 | null | 2020-03-16 01:59:29
对于用户 UID 5,我想提取记录 ID 2。对于 UID 8,我想提取记录 4。
我真正关心的只是UserID
和Value1
(每个用户最近修改的 Value1。
谢谢!
不知道为什么我会被否决...我已经尝试过分组,但是两个日期的比较让我失望。
解决方案
窗口函数是一种典型的方法:
select ue.*
from (select ue.*,
row_number() over (partition by UID order by modDate desc) as seqnum
from UsersEntry ue
) ue
where seqnum = 1;
推荐阅读
- c - 可以打开读取传感器数据
- apache-spark - 如何以追加模式将“所有字符串”数据帧写入 Spark JDBC 到具有 int 和 varchar 列的目标表
- email - 预期响应代码 250,但得到代码“550”,消息“550 5.7.1 Relaying denied”
- android - E/ConstraintSet:transitionEasing 语法错误语法:transitionEasing="cubic(1.0,0.5,0.0,0.6)" 或 [标准、加速、减速、线性]
- html - 你能用 CSS 从图标中删除空白背景吗?
- flutter - Swift pod 还不能集成为静态库
- amazon-web-services - AWS 证书协会
- python - Anaconda3 安装 - 安装过程中没有错误,但没有出现 anaconda 提示和导航菜单。和_conda.exe
- c++ - LLVM 中的 SIMD 矢量内存负载
- reactjs - React:setState 传递了包含 Map 函数的更新函数未呈现