2016-05-03 6 views
0

У меня есть таблица с 10 столбцами, и меня интересуют 3 из них. Скажите tableA с идентификатором, именем, URL-адресом, ранжированием.Максимальное значение для каждой группы в подзапросе

id |name |url |ranking 
-------------------------------- 
1  |apple |a1.com |1 
2  |apple |a1.com |2 
3  |apple |a1.com |3 
4  |orange |o1.com |1 
5  |orange |o1.com |2 
6  |apple |a1.com |4 

Итак, что я хочу, все столбцы строки с идентификатором 5 и 6. Это будет грести с максимальным рейтингом для каждой группы (яблоко, апельсин)

ответ

1

Использования row_number на номер строки в каждой группе имен по их ранжированию в порядке убывания и выберите первую строку для каждой группы.

select id,name,url,ranking 
from 
(select t.*, row_number() over(partition by name order by ranking desc) as rn 
from tablename t) t 
where rn =1 
+0

спасибо. Это помогло! – Amy123

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