Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Contar o número de valores por id


Faça um GROUP BY , use COUNT (que conta apenas valores não nulos):
select id,
       count(value1) as value1,
       count(value2) as value2,
       count(value3) as value3
from table1
group by id

Editar :

Se os valores não forem nulos, mas '.' (ou outra coisa), use case expressões para fazer contagem condicional, algo como:
select id,
       count(case when value1 <> '.' then 1 end) as value1,
       count(case when value2 <> '.' then 1 end) as value2,
       count(case when value3 <> '.' then 1 end) as value3
from table1
group by id