Edit:ok, agora você editou a pergunta de tal forma que esta resposta parece completamente irrelevante... suspiro... Vou deixá-la caso ajude você a começar. Felicidades.
A solução mais simples, dadas suas especificações:
select teacherid
from mytable
group by teacherid;
Se você precisar de outras informações além do
teacherid
: select teacherid, ...other cols...
from (select teacherid, ...other cols...
row_number() over (
partition by teacherid
order by classid /* or class as per edit */) as row_num
from mytable) my_derived_table
where my_derived_table.row_num = 1;
Advertência emptor:Eu não tenho uma instalação do SQL-Server à mão para testar, então a sintaxe pode não estar exatamente correta; mas está perto.