mysql - 如何保持表格的最新记录
问题描述
我有一个具有以下结构的表
日期 | 火车 |
---|---|
时间1 | 火车1 |
时间2 | 火车2 |
时间3 | 火车1 |
时间4 | 火车2 |
我想创建一个新表并只保留每列不同火车的最新记录
日期 | 火车 |
---|---|
时间3 | 火车1 |
时间4 | 火车2 |
我应该如何做到这一点?
解决方案
一种选择最近行的方法是:
select t.*
from releng_retry_test_phases t
where t.date = (select max(t2.date) from releng_retry_test_phases t2 where t2.train = t.train);
如果您确实想修改表并删除较旧的行;
delete t
from releng_retry_test_phases t join
(select t2.train, max(date) as max_date
from releng_retry_test_phases t2
group by t2.train
) t2
using (train)
where t.date < t2.max_date;
推荐阅读
- javascript - Express - 无法连接到 MongoDB 服务器
- java - Spring Boot @ControllerAdvice + @Transactional 无法按预期工作
- tensorflow - 如何在 Windows 10 上安装 CUDA 分析工具界面
- python - dask worker 如何访问集群中当前的 worker 总数?
- python - pandas 中的 for 循环真的很糟糕吗?我什么时候应该关心?
- react-native - 如何在表单字段中添加占位符和多行文本输入?反应原生
- java - BaseX GUI 找不到数据库——但它从控制台显示
- database - 带有按钮的 MS-ACCESS 过滤器子窗体
- c# - 使用 fakeDb 对 Sitecore 项目进行单元测试
- c++ - Quaternions and translations