sql >> Base de Datos >  >> RDS >> Sqlserver

Obtener la primera fila para un grupo

Editar:ok, ahora has editado la pregunta de tal manera que esta respuesta parece completamente irrelevante... suspiro... lo dejaré en caso de que te ayude a empezar. Saludos.

La solución más simple dadas sus especificaciones:

  select teacherid 
    from mytable 
group by teacherid;

Si necesita otra información además del 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;

Advertencia emptor:no tengo una instalación de SQL-Server a mano para probar, por lo que la sintaxis puede no ser exactamente correcta; pero está cerca.