एक GROUP BY
करें , COUNT
. का उपयोग करें (जो केवल गैर-शून्य मानों की गणना करता है):
select id,
count(value1) as value1,
count(value2) as value2,
count(value3) as value3
from table1
group by id
संपादित करें :
यदि मान शून्य नहीं हैं लेकिन '।' (या कुछ और), 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