mysql - mysql根据日期选择最新数据
问题描述
id | status | dateCreate
1 | 0 | 2020-02-15 15:41:06
2 | 1 | 2020-02-18 15:41:06
1 | 1 | 2020-02-18 15:41:06
2 | 0 | 2020-02-25 15:41:06
1 | 1 | 2020-03-01 15:41:06
4 | 1 | 2020-03-18 15:41:06
3 | 1 | 2020-03-19 15:41:06
7 | 0 | 2020-03-20 15:41:06
5 | 1 | 2020-03-21 15:41:06
4 | 0 | 2020-03-21 15:41:06
8 | 1 | 2020-03-22 15:41:06
4 | 1 | 2020-03-23 15:41:06
这是我的示例表,我想做的是获取每个 id 为 1 的最新状态,因此根据表,我想要的结果是:
id | status | dateCreate
1 | 1 | 2020-03-18 15:41:06
4 | 1 | 2020-03-18 15:41:06
3 | 1 | 2020-03-19 15:41:06
5 | 1 | 2020-03-21 15:41:06
8 | 1 | 2020-03-22 15:41:06
由于 id 2 最新状态为 0
这是我的示例查询,它没有得到我想要的,因为它也获得了 id 2,因为它之前的状态为 1。我想要的结果是根据 dateCreate 获得最新状态,状态为 1
SELECT A.id,A.status, MAX(A.dateCreate)
FROM (SELECT id, status, dateCreate
FROM table status = 1) A GROUP BY A.id ORDER BY A.dateCreate desc
解决方案
加入并测试
select t.*
from t
join (select id, max(datecreate) maxdate from t group by id) s on s.id = t.id and s.maxdate = t.datecreate
where t.status = 1
推荐阅读
- java - gui.ava.html.Html2Image 不呈现文本溢出
- powershell - 今天日期和密码到期日期少于 14 天?
- linux - 是否可以完全禁用 linux 重定向运算符( <<、>>、<、>、>| )
- elasticsearch - LogStash 特定字段作为索引
- macos - USB 设备在 Max OS 10.13.4 上返回 kIOReturnExclusiveAccess replug
- java - 从自定义数组列表中获取具有相同标志的所有项目的列表
- wordpress - 显示两次带有设计错误的 woocommerce 购物车通知
- php - 阻止实时聊天插件在 wordpress 中包含内联 javascript 和 cookie
- c - 需要关于 SID_AND_ATTRIBUTES_HASH 结构的哈希成员的解释
- r - 将条件语句添加到数据表的 formatStyle - R