我有一些由date_time、job_name和status列组成的数据.作业(job)可以每天运行一次,也可以每天在不同的时刻运行多次,它们的状态可以是"成功"、"失败"或"禁用".
我的数据是这样的:
date_time | job_name | status |
---|---|---|
01/01/2020 07:30:30 | job_1 | success |
01/01/2020 15:30:30 | job_1 | disabled |
01/01/2020 18:30:30 | job_1 | failed |
01/01/2020 08:30:30 | job_2 | success |
01/01/2020 18:30:30 | job_2 | disabled |
01/02/2020 15:30:30 | job_1 | success |
01/02/2020 08:30:30 | job_2 | success |
01/02/2020 18:30:30 | job_2 | success |
我try 按日期(注意,不是日期/时间)和JOB_NAME对这些数据进行分组.根据日期(注意,不是日期/时间),我想返回作业(job)是否成功.
如果某一天作业(job)的一次运行(或唯一一次运行)是"失败"的,则我的分组行必须返回"失败",而不考虑当天的其他"状态"结果.
如果作业(job)在一天中的一个运行(或唯一运行)被"禁用",并且该作业(job)没有"失败"运行,则我的分组行必须返回"已禁用".
如果作业(job)在一天中的所有运行都是"Success",我的分组行必须返回"Success".
因此,我的示例表的预期结果是:
date_time | job_name | status |
---|---|---|
01/01/2020 | job_1 | failed |
01/01/2020 | job_2 | disabled |
01/02/2020 | job_1 | success |
01/02/2020 | job_2 | success |
我曾try 在DATE_TIME和JOB_NAME列上使用GROUP BY语句来实现此结果,但我无法实现何时返回"成功"、"失败"和"禁用"状态的逻辑.
如有任何帮助,我们不胜感激!