Showing posts with label Display count for number of column in table with non zero values for each rows. Show all posts
Showing posts with label Display count for number of column in table with non zero values for each rows. Show all posts

Thursday, March 7, 2013

Display count for number of column in table with non zero values for each rows


declare @t table (ID INT IDENTITY(1,1),a int,b int,c int,d int)

insert into @t
values(1,0,0,0),(0,1,0,0),(1,2,0,0),(1,2,3,4),(1,2,3,0)

;with cte as
(
select * from @t
unpivot
(colvalue for colname in(a,b,c,d)) unpvt
)

select t.*,cnt from @t t
INNER JOIN (
select ID,COUNT(*) as cnt
from cte
WHERE colvalue > 0
GROUP BY ID
) x ON x.ID = t.ID

Output :