sql—在postgresql的where语句中基于多个条件筛选行

sshcrbum  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(492)

我在postgres11.0中有下表

id              status
NCT00632827 true
NCT00632827 (null)
NCT00770185 false
NCT00770185 (null)
NCT00784303 (null)
NCT00784303 (null)

由于状态列中的值不同,id值重复。我想保留正确或错误的行。如果多行有空值,我只想保留一行。所需输出为:

id              status
NCT00632827 true
NCT00770185 false
NCT00784303 (null)

我正在尝试以下查询:

select id, status
where status = 'false' or status  = 'true'
from table

如何保留空值的行(所需输出中的最后一行)?

xzlaal3s

xzlaal3s1#

对于这个数据集,简单的聚合似乎足以产生预期的结果:

select id, bool_or(status) status from mytable group by id

相关问题