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

时间:2015-02-19 09:19:06

标签: sql oracle count

我使用的是Oracle SQL,我需要一个查询帮助。

我需要计算有多少行至少有一个值NA

我的表有超过300列(这些不是真正的列名):

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

以下是表格的示例:

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

请告知。

3 个答案:

答案 0 :(得分:1)

你可以使用案例来做一个子选择的总和来得到这个:

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

答案 1 :(得分:0)

使用计数

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

答案 2 :(得分:0)

好吧,我找到了解决方案。

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