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

Jak uzyskać pierwszy rekord z każdej grupy z wyniku pobranego za pomocą polecenia group by?

declare @T table (ID int, GroupID int, Qty int)
insert into @T values
(1, 1, 100),
(2, 1, 200),
(3, 1, 300),
(4, 2, 98),
(5, 2, 198),
(6, 3, 175),
(7, 3, 275),
(8, 3, 375),
(9, 4, 215)

;with cte as
(
  select
    ID,
    GroupID,
    Qty,
    rank() over(partition by GroupID order by ID) as rn
  from @T
)  
select ID, GroupID, Qty
from cte
where rn = 1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zautomatyzować zbieranie danych w rozwoju bazy danych SQL Server

  2. Czy mogę włączyć ignorowanie_dup_key dla klucza podstawowego?

  3. Zmień wartości NULL w formacie Datetime na pusty ciąg

  4. Zmień typy kolumn w ogromnej tabeli

  5. Użyj typu danych czasu SQL Server w aplikacji C#.NET?