Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL - Restringir o número de linhas retornadas com base em uma contagem de linhas


Use o ROW_NUMBER() função para isso:
SELECT *
FROM (select *,ROW_NUMBER() OVER (PARTITION BY group_id ORDER BY item_id) as RowRank 
      from items_in_groups
      )sub
WHERE RowRank <=2

Demonstração:SQL Fiddle

ROW_NUMBER() função atribui um número a cada linha. PARTITION BY é opcional, mas usado para iniciar a numeração para cada valor nesse grupo, ou seja:se você PARTITION BY group_id então, para cada group_id exclusivo valor a numeração começaria em 1. ORDER BY é claro que é usado para definir como a contagem deve ser feita e é necessário no ROW_NUMBER() função.