Oracle:DISTINCT与GROUP BY对比ROW_NUMBER

时间:2012-04-27 20:22:04

标签: sql oracle

在Oracle中,以下三个查询中的哪一个最有效:

SELECT DISTINCT a, b
FROM tab  

SELECT a, b
FROM tab
GROUP BY a, b

SELECT a, b
FROM
(SELECT a, b, row_number() OVER (PARTITION BY a, b ORDER BY a, b) rn
 FROM tab )
WHERE rn = 1

1 个答案:

答案 0 :(得分:1)

第一个是正确的选择,因为其他的是实现相同目标的古怪和非标准(并且有点不正常)的方式。