我想根据特定参数的值插入符号行的文本结果。
例如
表1
Id | status
____________
23 | complete
24 | going on
34 | failed
56 | complete
表1中现在,如果任何一个或多个条目的状态为“失败”,则我的查询结果应为:
Result | tableName
___________________
Failed | Table1
如果任何一个或多个条目的状态为“正在进行”,并且没有行的状态为“失败”,则我的查询结果应为:
Result | tableName
___________________
Going on | Table1
最后,如果状态栏中的所有值均为'complete',则结果应为:
Result | tableName
___________________
Complete | Table1
最后,查询结果基于“状态”列,优先级为:
1. Failed
2. Going on
3. Complete
有人可以帮我吗?
我认为您需要条件聚合:
select
case
when count(*) filter(where status = 'failed') > 0 then 'failed'
when count(*) filter(where status = 'going on') > 0 then 'going on'
when count(*) > 0 then 'complete'
end result
from mytable