微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Postgres - 仅选择具有 FAILURE 状态的日期

如何解决Postgres - 仅选择具有 FAILURE 状态的日期

对于特定的 project_name(成功、失败、中止、不稳定),我每天有多个结果的表。我只想选择只发生 FAILURE 状态的日子 - 没有别的。有些日子有多个状态(失败后可以解决并获得不同时间的状态并设置为成功)。 如何仅选择处于 FAILURE 状态的天数?

我的查询

SELECT
    date_trunc('day',time) AS group_day,build_result,project_name
FROM project_status
WHERE project_name = 'project_x'
GROUP BY date_trunc('day',time),project_name,build_result

解决方法

使用聚合和具有

SELECT date_trunc('day',time) AS group_day,project_name
FROM project_status
WHERE project_name = 'project_x'
GROUP BY date_trunc('day',time),project_name
HAVING MIN(build_result) = MAX(build_result) AND
       MIN(build_result) = 'FAILURE'
,

您可以按group_dayproject_name分组,并在string_agg()子句中使用HAVING来设置条件build_result的唯一值是{{ 1}}:

'FAILURE'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。