Соедините таблицу саму с собой 4 раза, задав необходимые фильтры.
DECLARE @Temp TABLE ( [Name] VARCHAR(100), [Event] INT, Gold INT, Silver INT, Bronze INT )
INSERT @Temp VALUES
( 'Илья', 1, 5, 3, 4 ),
( 'Алексей', 1, 6, 3, 7 ),
( 'Илья', 2, 3, 5, 6 ),
( 'Илья', 3, 8, 3, 1 ),
( 'Алексей', 2, 5, 1, 1 ),
( 'Алексей', 3, 3, 4, 2 )
SELECT E1.[Name],
E1.Gold event_1_gold, E1.Silver event_1_silver, E1.Bronze event_1_bronze,
E2.Gold event_2_gold, E2.Silver event_2_silver, E2.Bronze event_2_bronze,
E3.Gold event_3_gold, E3.Silver event_3_silver, E3.Bronze event_3_bronze
FROM @Temp AS E1
JOIN @Temp AS E2 ON E1.[Name] = E2.[Name]
JOIN @Temp AS E3 ON E1.[Name] = E3.[Name]
WHERE E1.[Event] = 1
AND E2.[Event] = 2
AND E3.[Event] = 3