计算有多少行至少有一个特定值
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
)
我正在使用 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
)