2012-06-19 9 views
2

ищет некоторую помощь, ограничивая результаты при запросе комбинаций между двумя столбцами. Вот пример вида таблицы я работаю с ..Ограничение записей комбинаций из 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 

Я пытаюсь показать все записи всех комбинаций «группы» и «государство», но ограничение на отображение только до 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 

Спасибо за помощь.

ответ

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 зарезервированное слово, я полагаю, ваш столбец на самом деле называется что-то еще ... Вам нужно будет настроить мой запрос, чтобы использовать правильное имя столбца.

Смежные вопросы