Que tal ant.
Te dejo la primer parte, creo que partir de aquí es sencillo.
Código:
SELECT Key,
Sum(CASE Event WHEN 1 THEN 1 ELSE 0 END) AS E1,
Sum(CASE Event WHEN 2 THEN 1 ELSE 0 END) AS E2,
Sum(CASE Event WHEN 3 THEN 1 ELSE 0 END) AS E3,
Sum(CASE Event WHEN 4 THEN 1 ELSE 0 END) AS E4
FROM myTable
GROUP BY Key
Del resultado anterior si el campo E2 es cero pues no hay registro de ese evento para ese Key.
De cualquier manera si tienes duda, por aquí andamos.
Saludos y suerte!!