Postgresql

一句話返回滿足條件的欄位名和行數

  • July 8, 2020

我在 postgres 中有一個包含 10 個欄位的表,需要檢查其中 3 個欄位中的某些值,然後返回滿足條件的欄位名稱和每個欄位中的行數。

所以它是這樣的:

select count(*)
from table
where field1 ilike '%E+%'
OR field2 ilike '%E+%'
OR field3 ilike '%E+%'

然後返回滿足條件的欄位和行數(我不知道該怎麼做)

您可以為此使用條件聚合:

select count(*), 
      count(*) filter (where field1 ilike '%E+%') as field1_matches,
      count(*) filter (where field2 ilike '%E+%') as field2_matches,
      count(*) filter (where field3 ilike '%E+%') as field3_matches
from the_table
where field1 ilike '%E+%'
  OR field2 ilike '%E+%'
  OR field3 ilike '%E+%'

引用自:https://dba.stackexchange.com/questions/270619