Creo que lo que quieres hacer es algo así como esto:
Código SQL
[-]
Select "id_alumno", Count(*) as Materias
From "tabla2"
Group By "id_alumno"
Having Count(*) > 2
Piense que cuando se usa una cláusula "Group by", en la cláusula "Select" siempre tienen que estar los campos por los que agrupas (y viceversa).
EL "Having" es como una cláusula "Where" pero con funciones de grupo (como es el Count).
Un saludo