Oracle
 sql >> Base de données >  >> RDS >> Oracle

Compter le nombre de valeurs par identifiant

Faites un GROUP BY , utilisez COUNT (qui ne compte que les valeurs non nulles) :

select id,
       count(value1) as value1,
       count(value2) as value2,
       count(value3) as value3
from table1
group by id

Modifier :

Si les valeurs ne sont pas nulles mais '.' (ou autre chose), utilisez case expressions pour faire un comptage conditionnel, quelque chose comme :

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