Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Uzyskaj pierwszy rząd dla jednej grupy

Edycja:ok, teraz zredagowałeś pytanie tak, że ta odpowiedź wygląda na zupełnie nieistotną... westchnienie... zostawię to na wypadek, gdyby pomogło ci to zacząć. Pozdrawiam.

Najprostsze rozwiązanie, biorąc pod uwagę Twoje specyfikacje:

  select teacherid 
    from mytable 
group by teacherid;

Jeśli potrzebujesz innych informacji oprócz 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;

Ostrzeżenie:nie mam pod ręką instalacji SQL-Server do testowania, więc składnia może nie być dokładnie poprawna; ale jest blisko.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Skrypt inwentaryzacji kolekcji SQL Server -3

  2. Zalety wydajności SQL Server 2016 Enterprise Edition

  3. Stosowanie klauzuli Where dla Order by w SQL

  4. Jak zarządzać GetDate() za pomocą Entity Framework

  5. 5 nawyków monitorowania baz danych w przypadku udanych administratorów baz danych