因此,正如标题所示,我需要从表中返回记录,这些记录可以属于一个组。如果一个组中有多条记录,则只返回最后一条;如果该记录不属于任何组,则将其一起返回。
我有以下表格
(automation_execution(1->n(automation_execution_action(1<--->;1(可行(
我需要返回可工作的表记录,在这些记录中,它们可能链接到自动化表,也可能不链接。
自动执行
id | company_id |
---|---|
1 | 1 |
2 | 1 |
所以这个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;