sql >> Databasteknik >  >> RDS >> Sqlserver

Få första raden för en grupp

Edit:ok, nu har du redigerat frågan så att det här svaret ser helt irrelevant ut...suck...jag lämnar det ifall det hjälper dig att komma igång. Skål.

Den enklaste lösningen med tanke på dina specifikationer:

  select teacherid 
    from mytable 
group by teacherid;

Om du behöver annan information utöver 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:Jag har inte en installation av SQL-Server praktisk att testa på, så syntaxen kanske inte är exakt korrekt; men det är nära.



  1. Gruppering registrerar timme för timme eller dag för dag och fyller luckor med noll eller noll

  2. Dålig prestanda när trigramlikhet och fulltextsökning kombinerades med Q ind django med postgres

  3. Entity Framework 6 - Tidsfrågor

  4. Arkivering hängde på grund av KOMPATIBEL ORA-16484