Вы можете попробовать следующий код SQL на SQL сервере.
DECLARE @table Table(Id tinyint, Code CHAR(1))
INSERT INTO @table
values
(1 ,'C'),
(1 ,'I'),
(2 ,'I'),
(2 ,'C'),
(2 ,'D'),
(2 ,'D'),
(3 ,'C'),
(3 ,'I'),
(3 ,'D'),
(4 ,'I'),
(4 ,'C'),
(4 ,'C');
SELECT Id, c+d+i as [Count], [c] as [#Code C],[d] as [#Code D],[i] as [#Code I]
FROM @table
PIVOT
(
Count(code) FOR code IN ([c],[d],[i])
) as pvt
+----+-------+---------+---------+---------+
| Id | Count | #Code C | #Code D | #Code I |
+----+-------+---------+---------+---------+
| 1 | 2 | 1 | 0 | 1 |
| 2 | 4 | 1 | 2 | 1 |
| 3 | 3 | 1 | 1 | 1 |
| 4 | 3 | 2 | 0 | 1 |
+----+-------+---------+---------+---------+