如何检索具有不同ID但名称相同的唯一记录?

时间:2014-01-21 08:56:04

标签: sql oracle oracle11g group-by

使用Oracle 11g,我从查询中得到以下结果:

select ID,NAME from table_a;

ID                NAME
----------------- ------------
1                 AA
2                 BB
3                 AA
4                 CC
5                 DD
6                 AA

我所追求的是一个select查询,它只返回此列表中的唯一名称以及ID。在上面例子中的任何重复名称中,在这种情况下,三个AA,我只需要这些重复的一个结果,不关心它带有哪个ID。

因此,我所依据的实际结果集基于我的要求如下:

ID                NAME
----------------- ------------
1                 AA
2                 BB
4                 CC
5                 DD

如前所述,在三个AA中,它可能是ID 1或3或6,但只需要一个记录就可以找到任何重复的名称。

2 个答案:

答案 0 :(得分:3)

您可以使用GROUP BY

select MIN(ID), NAME from table_a GROUP BY NAME;

你必须设置MIN(ID),否则oracle将不知道选择哪个ID

答案 1 :(得分:1)

select min(id) as id,
       name
from table_a
group by name;