sql - 在 SQL 查询中需要帮助以获取最近创建的带有状态的作业记录
问题描述
我需要具有最近状态的不同 Jobid
jobs table
------------------
JobId Status CreatedDate
------------------
1 sent 4/24/2018
1 draft 4/23/2018
2 sent 4/22/2018
2 draft 4/21/2018
1 req 4/20/2018
我需要这样的结果
---------------
JobId Status
---------------
1 Sent
2 Sent
我试过了,但给出了具有不同状态记录的重复 jobid
select distinct JobId, Status, CreatedDate from Jobs order by CreatedDate desc
解决方案
我会建议:
select j.*
from jobs j
where j.CreatedDate = (select max(j2.CreatedDate) from jobs j2 where j2.jobid = j.jobid);
如果您在 上有一个索引jobs(jobid, CreatedDate)
,那么这可能是最快的选择。
推荐阅读
- javascript - 有没有办法让 wordpress 帖子类别具有功能但不可见?
- c# - Cookie 更新正常,除了谷歌浏览器以外的其他浏览器
- google-chrome - 如何使用 Chrome 浏览器扩展来监控和解析 devtools 控制台中的输出?
- javascript - 使用 fs 节点 js 创建音频文件时始终显示 0 秒长度
- sql - postgresql中的增量列
- javascript - 使用自定义 JS 提取 URL 路径的最后一部分 - 但没有添加参数?
- c# - 如何从 C# 应用程序设置中读取 Json 对象
- python - 重复应用过滤器,直到 Python 中的条件用尽
- java - 如何产生 10 个随机数并创建星号来表示值
- postgresql - 数据库中的 btreepage 和 MessageQueueSend 等待事件