需要从具有重复ID的表中随机返回每个ID的行

时间:2018-03-02 09:51:13

标签: sql oracle row

我的表有重复的ID,所以我想从表中返回一行,其中包含重复的ID。 需要帮助,提前致谢。

示例:

ID   | NAME  |CODE
-----------------
101  | XXX   | A
101  | XXX   | B
101  | XXX   | C
102  | XXX   | A
102  | XXX   | B
103  | XXX   | A
103  | XXX   | C
104  | XXX   | C
104  | XXX   | C
104  | XXX   | A
104  | XXX   | B

我需要从表格中只返回一个ID,因此预期的输出将是..

ID   | NAME  |CODE
-----------------
101  | XXX   | A
102  | XXX   | B
103  | XXX   | B
104  | XXX   | A
例如,我在这里只占用了四列,但在我的数据库中,我的表有30到40行。

4 个答案:

答案 0 :(得分:0)

这会给出id的列表以及具有倍数的所有id的{​​{1}}行数。

id

答案 1 :(得分:0)

假设您的ID为not nullunique,您可以使用以下sql来获取所需的行:

select * -- to get the complete row
  from myTable
 where id in
            (
             select id
               from myTable
              group by id
             having count(1)>1);

答案 2 :(得分:0)

这会给出id的列表以及具有倍数的所有id的{​​{1}}行数。

id

答案 3 :(得分:0)

select ID, count(ID) from My_Table
Group by ID 
having count(ID)>1

此查询允许您选择在表My_Table

中出现多次的所有ID