Sql 限制来自2列的组合记录

Sql 限制来自2列的组合记录,sql,oracle,Sql,Oracle,在查询两列之间的组合时,正在寻找限制结果的帮助。下面是我正在使用的表格类型的一个示例 id name group state 1 Bob A NY 2 Jim A NY 3 Dan A NY 4 Mike A FL 5 Tim B NY 6 Sam B FL 7 Brad B FL 8 Glen B FL 9 Ben C FL 我试图

在查询两列之间的组合时,正在寻找限制结果的帮助。下面是我正在使用的表格类型的一个示例

id  name  group  state
1   Bob   A      NY
2   Jim   A      NY
3   Dan   A      NY
4   Mike  A      FL
5   Tim   B      NY
6   Sam   B      FL
7   Brad  B      FL
8   Glen  B      FL
9   Ben   C      FL
我试图显示组和状态的所有组合的所有记录,但仅限于为每个组合显示最多2条记录。结果应该如下所示

id    name  group   state
1     Bob   A       NY
2     Jim   A       NY
4     Mike  A       FL
5     Tim   B       NY
6     Sam   B       FL
7     Brad  B       FL
9     Ben   C       FL

谢谢您的帮助。

假设您总是希望每个组有两行,并且状态组合的id最低

当然,由于group是一个保留字,我假设您的列实际上被命名为其他名称。。。您需要调整我的查询以使用正确的列名

SELECT *
  FROM (SELECT a.*,
               row_number() over (partition by group, state
                                      order by id asc) rnk
          FROM your_table a)
 WHERE rnk <= 2