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

SQL — Ogranicz liczbę zwracanych wierszy na podstawie liczby wierszy

Użyj ROW_NUMBER() funkcja do tego:

SELECT *
FROM (select *,ROW_NUMBER() OVER (PARTITION BY group_id ORDER BY item_id) as RowRank 
      from items_in_groups
      )sub
WHERE RowRank <=2

Demo:SQL Fiddle

ROW_NUMBER() funkcja przypisuje numer do każdego wiersza. PARTITION BY jest opcjonalne, ale używane do rozpoczęcia numerowania od nowa dla każdej wartości w tej grupie, np.:jeśli PARTITION BY group_id następnie dla każdego unikalnego group_id wartość numeracja zacznie się od nowa od 1. ORDER BY oczywiście służy do określenia, jak powinno przebiegać zliczanie i jest wymagane w ROW_NUMBER() funkcja.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kopiowanie wielopoziomowych powiązanych tabel w mssql

  2. Czy istnieje wbudowana funkcja, która może konwertować liczby na słowa w serwerze sql?

  3. Przywróć bazę danych w SQL Server 2017

  4. Jak używać wyrażenia regularnego na serwerze sql?

  5. LOG10() Przykłady w SQL Server