Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Вземете първия ред за една група

Редактиране:добре, сега сте редактирали въпроса така, че този отговор изглежда напълно без значение... въздишка... Ще го оставя, в случай че ви помогне да започнете. Наздраве.

Най-простото решение предвид вашите спецификации:

  select teacherid 
    from mytable 
group by teacherid;

Ако имате нужда от друга информация в допълнение към 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:Нямам инсталация на SQL-Server под ръка, за да тествам, така че синтаксисът може да не е точно правилен; но е близо.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Текущо изпълнявана заявка в съхранена процедура

  2. GRANT EXECUTE на всички съхранени процедури

  3. Как да докирам/раздокарам заявката на Windows и други раздели в SQL Server Management Studio (SSMS) - SQL Server/TSQL Урок, част 21

  4. Защо Datediff между GETDATE() и SYSDATETIME() в милисекунди винаги е различен?

  5. Как да сравним, ако два низа съдържат едни и същи думи в T-SQL за SQL Server 2008?