SQL:需要选择至少有3列不等于特定值的行

SQL:需要选择至少有3列不等于特定值的行,sql,postgresql,Sql,Postgresql,我需要选择至少有三列不等于“未知”的行 示例数据集: id condition_A condition_B condition_C condition_D Condition_E 1 Unknown Positive Negative Negative Unknown 2 Unknown Unknown Negative

我需要选择至少有三列不等于“未知”的行

示例数据集:

id     condition_A      condition_B      condition_C     condition_D     Condition_E    
1      Unknown          Positive         Negative        Negative        Unknown
2      Unknown          Unknown          Negative        Negative        Unknown
3      Positive         Positive         Negative        Negative        Unknown


在本例中,我希望查询返回第1行和第3行

我认为这样做可以:

select * from tablename
where 3 <=
  (condition_A <> 'Unknown')::int + 
  (condition_B <> 'Unknown')::int + 
  (condition_C <> 'Unknown')::int + 
  (condition_D <> 'Unknown')::int + 
  (condition_E <> 'Unknown')::int

我认为这样可以做到:

select * from tablename
where 3 <=
  (condition_A <> 'Unknown')::int + 
  (condition_B <> 'Unknown')::int + 
  (condition_C <> 'Unknown')::int + 
  (condition_D <> 'Unknown')::int + 
  (condition_E <> 'Unknown')::int

到目前为止,您尝试了什么?示例数据很棒,但也指定了预期结果。提示:
case
表达式。您需要在每三个列组合中使用
case when…
语句来检查“未知”值您到目前为止尝试了什么?示例数据很棒,但也要指定预期的结果。提示:
case
表达式。您需要对每三个列组合使用
case when…
语句来检查“未知”值