计算有多少行至少有一个特定值

Count how many rows have at least one certain value

我正在使用 Oracle SQL,我需要查询方面的帮助。

我需要计算至少有一个值 NA 的行数。

我的 table 有 300 多列(这些不是真正的列名):

col1 varchar,
col2 varchar,
col3 varchar,
...
...
...
col300 varchar

这是一个 table 的例子:

col1 | col2 | col3 | col4
 10  | 15   | 55   |  NA
 NA  | 15   | 55   |  NA
 10  | 15   | 55   |  33
 10  | NA   | 55   |  58
 10  | 15   | 55   |  33
 10  | 15   | 55   |  84
 10  | 15   | NA   |  40

Output expected result: 4

请指教

您可以使用案例对子 select 求和来得到这个:

Select SUM(NA)

From

(Select case when col1 = 'NA' then 1 case when col2 = 'NA' then 1 case when col3 = 'NA' then 1 case when col4 = 'NA' then 1 end as NA
from Table) a

使用次数

SELECT
  COUNT(1)
FROM
  table_name
WHERE
  'NA' IN (col1, col2, ..., col300)

嗯,我找到了解决办法。

select sum(cnt) from
(
select case when 
       col1 = 'NA'
    or col2 = 'NA'
    or col3 = 'NA'
    or col4 = 'NA' then 1 end cnt
from MyTable  
)