Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Holen Sie sich die erste Reihe für eine Gruppe

Bearbeiten:Ok, jetzt haben Sie die Frage so bearbeitet, dass diese Antwort völlig irrelevant aussieht ... seufz ... Ich lasse es, falls es Ihnen beim Einstieg hilft. Prost.

Die einfachste Lösung angesichts Ihrer Spezifikationen:

  select teacherid 
    from mytable 
group by teacherid;

Wenn Sie neben der teacherid weitere Informationen benötigen :

  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;

Vorsichtsmaßnahme:Ich habe keine Installation von SQL-Server zum Testen zur Hand, daher ist die Syntax möglicherweise nicht genau korrekt. aber es ist nah dran.