检查重复的行是否在任何行的一个属性中都有值

时间:2019-07-12 08:45:08

标签: sql postgresql

我有一个看起来像这样的表:

_formKey.currentState.save();

如果每个ID包含特定值,我想提取它。

在这种情况下,如果该值为5,则需要一个这样的表:

_formKey.currentState

任何解决方案或关于如何做到的提示?谢谢。

2 个答案:

答案 0 :(得分:5)

您可以使用分组依据和条件计数:

select id, count(*) filter (where position = 5) > 0 as has_number
from the_table
group by id;

另一种选择是使用bool_or()聚合:

select id, bool_or(position = 5) as has_number
from the_table
group by id;

答案 1 :(得分:0)

使用条件聚合

select id,
MAX(CASE WHEN position = 5 THEN 1 ELSE 0 END) as HasNumber
from table_name t1 group by id