Rails 5 - 我需要 return 一组的第一条记录,但有些记录没有组

Rails 5 - I need to return the first record of a group, but there are records that have no group

因此,正如标题所示,我需要 return 来自 table 的记录,其中这些记录可以属于一个组。 如果一组中有几条记录,return只有最后一条,如果记录不属于任何组,return一起。

我有以下 tables

(automation_execution) 1 --> n (automation_execution_action) 1 <---> 1 (workable)

我需要 return 可行的 table 记录,它们可能会或可能不会链接到自动化 tables。

automation_execution

id company_id
1 1
2 1

automation_execution_ations

id automation_execution_id workable_id
1 1 1
2 1 2

可行

id company_id status created_at
1 1 finished 2022-01-19 19:48:24
2 1 processing 2022-01-19 18:00:24
3 1 processing 2022-01-19 18:00:24
4 1 processing 2022-01-19 18:00:24

在上面的例子中,我们有 4 个可行的方法,1 和 2 属于自动化,而 3 和 4 不属于,在这个例子中我需要 return 记录 2、3 和 4。

所以这个 SQL 有效:

select workables.*
from (
         select workables.*,
                automation_execution_actions.automation_execution_id,
                row_number()
                over (partition by automation_execution_actions.automation_execution_id order by workables.id desc) as rn
         from workables
                  left join automation_execution_actions on automation_execution_actions.workable_id = workables.id
     ) as workables
where rn = 1
   OR automation_execution_id IS NULL
order by id;