在查询2列之间的组合时寻找一些限制结果的帮助。这是我正在使用的那种表的一个例子..
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
我正在尝试显示“group”和“state”的所有组合的所有记录,但限制为每个组合最多只显示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
感谢您的帮助。
答案 0 :(得分:3)
假设您始终希望每个group
和state
组合的两行与最低id
SELECT *
FROM (SELECT a.*,
row_number() over (partition by group, state
order by id asc) rnk
FROM your_table a)
WHERE rnk <= 2
当然,由于group
是保留字,我假设您的列实际上是其他名称...您需要调整我的查询以使用正确的列名。