尝试创建 Teradata 视图以汇总特定 ID 的行具有特定值的时间

Trying to create a Teradata view to aggregate how long rows of a specific ID have had a certain value

我有一份测试报告 table,在每个 运行 测试后写一行。

假设这是数据:

| main_id | status |  date   |
|---------|--------|---------|
|  123    |  pass  | Jan 1st |
|  123    |  fail  | Jan 2nd |
|  123    |  fail  | Jan 3rd |
|  123    |  fail  | Jan 4th |

我想为每个测试创建一个视图,列出失败的时长。

基本上,上述数据的对应行如下所示:

| main_id | days_failing |
|---------|--------------|
|  123    |      3       |

使用 Teradata SQL,如何检查源中的每一行 table,寻找最后一次成功,然后总结所有后续失败?

编辑: 请注意,源 table 中会有许多不同的 "main_id",我需要在视图中为每个唯一的行添加 1 行源 table.

中的测试失败

谢谢

select      main_id
           ,count (*) - 1   as days_failing

from       (select      main_id
                       ,"date"

            from        t

            qualify     "date" >= max (case status when 'pass' then "date" end) over (partition by main_id)
            ) t

group by    main_id

order by    main_id
;