Edycja:ok, teraz zredagowałeś pytanie tak, że ta odpowiedź wygląda na zupełnie nieistotną... westchnienie... zostawię to na wypadek, gdyby pomogło ci to zacząć. Pozdrawiam.
Najprostsze rozwiązanie, biorąc pod uwagę Twoje specyfikacje:
select teacherid
from mytable
group by teacherid;
Jeśli potrzebujesz innych informacji oprócz 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;
Ostrzeżenie:nie mam pod ręką instalacji SQL-Server do testowania, więc składnia może nie być dokładnie poprawna; ale jest blisko.