Есть ли разница в производительности при использовании GROUP BY с MAX() в качестве агрегата по сравнению с ROW_NUMBER при разделении по?

Is существует разница в производительности между следующими двумя запросами, и если да, то какой из них лучше?:

    select 
    q.id, 
    q.name 
    from(
        select id, name, row_number over (partition by name order by id desc) as row_num
from table
    ) q
        where q.row_num = 1

против

select
max(id) ,
name
from table
group by name

(набор результатов должен быть одинаковым)

Предполагается, что индексы не установлены.

UPDATE: Я протестировал это, и группа byоказалась быстрее.

6
задан Marina 28 June 2012 в 11:43
поделиться