首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MaxDate的列表值

使用MaxDate的列表值
EN

Stack Overflow用户
提问于 2020-11-21 22:16:22
回答 1查看 37关注 0票数 1

我试图创建ie查询,以显示它与最大日期,但我不知道如何!按照脚本和结果执行:

代码语言:javascript
复制
Select
    results.severity As "Count_severity",
    tasks.name As task,
    results.host,
    to_timestamp(results.date)::date
From
    tasks Inner Join
    results On results.task = tasks.id
Where
    tasks.name Like '%CORP 0%' And
    results.severity >= 7 And
    results.qod > 70 

我只需要显示每个任务的最后一个日期。你能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-21 22:21:51

您似乎在使用Postgres (正如使用强制转换操作符::所建议的)。如果是这样的话--我正确地理解了--你可以使用distinct on

代码语言:javascript
复制
select distinct on(t.name) 
    r.severity, t.name as task, r.host, to_timestamp(r.date::bigint)::date
from tasks t
inner join results r on r.task = t.id
where t.name like '%corp 0%' and r.severity >= 7 and r.qod > 70 
order by t.name, to_timestamp(r.date::bigint)::date desc

这只保证每个任务有一行;选择哪一行由order by子句控制,因此上面的行得到了最大的date (时间部分被分开)。如果有联系,则未定义返回哪一行。如果order by子句与我所理解的不同,您可能希望将它调整为您的确切需求。

另一方面,如果您想要顶级领带,请使用窗口函数:

代码语言:javascript
复制
select *
from (
    select r.severity, t.name as task, r.host, to_timestamp(r.date::bigint)::date,
        rank() over(partition by t.name order by to_timestamp(r.date::bigint)::date desc) rn
    from tasks t
    inner join results r on r.task = t.id
    where t.name like '%corp 0%' and r.severity >= 7 and r.qod > 70 
) t
where rn = 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64948657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档