Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Obter a primeira linha para um grupo


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.