次の2つのクエリの間にパフォーマンスの違いはありますか?もしそうなら、どちらが優れていますか?:
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
(結果セットは同じである必要があります)
これは、インデックスが設定されていないことを前提としています。
更新:私はこれをテストしました、そしてそれgroup by
はより速かったです。