Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Obtenir la première ligne pour un groupe

Edit :ok, maintenant vous avez modifié la question de sorte que cette réponse semble complètement hors de propos... soupir... Je vais la laisser au cas où cela vous aiderait à démarrer. Bravo.

La solution la plus simple compte tenu de vos spécifications :

  select teacherid 
    from mytable 
group by teacherid;

Si vous avez besoin d'autres informations en plus du 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;

Caveat emptor :Je n'ai pas d'installation de SQL-Server à portée de main pour tester, donc la syntaxe peut ne pas être exactement correcte ; mais c'est proche.