GROUP BY
を実行します 、COUNT
を使用します (null以外の値のみをカウントします):
select id,
count(value1) as value1,
count(value2) as value2,
count(value3) as value3
from table1
group by id
編集 :
値がnullではなく「。」の場合(または他の何か)、case
を使用してください 次のような条件付きカウントを行う式:
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