杂记_显示重复记录

需求

一个表中可能有N条记录,如何显示重复的记录?

SQL> create tablet1 (

  2 id   number,

  3  namevarchar2(20)

  4  );

 

Table created.

 

SQL> insert intot1 values(1, '张云');

 

1 row created.

 

SQL> insert intot1 values(2, '叶英才');

 

1 row created.

 

SQL> insert intot1 values(3, '单立国');

 

1 row created.

 

SQL> insert intot1 values(4, '闫亚宁');

 

1 row created.

 

SQL> insert intot1 values(5, '姚凤鸣');

 

1 row created.

 

SQL> insert intot1 values(6, '巫立成');

 

1 row created.

 

SQL> insert intot1 values(7, '张云');

 

1 row created.

 

SQL> insert intot1 values(8, '巫立成');

 

1 row created.

 

SQL> insert intot1 values(9, '叶英才');

 

1 row created.

 

SQL> commit;

 

Commit complete.

 

SQL> select *from t1;

 

        ID NAME

---------- --------------------

         1 张云

         2 叶英才

         3 单立国

         4 闫亚宁

         5 姚凤鸣

         6 巫立成

         7 张云

         8 巫立成

         9 叶英才

 

分析

首先,我们要先把姓名进行统计,将重复的姓名分组,找出重复的记录

SQL> select namefrom t1 group by name having count(name) > 1;

 

NAME

--------------------

巫立成

叶英才

张云

 

第二问

你这是找出了重复的,但是我怎么知道他是重复的呢,如果条数很多,你不可能直接看出来

SQL> select name,count(name) from t1 group by name having count(name) > 1;

(总数大于1,证明有重复)

 

NAME                 COUNT(NAME)

-------------------- -----------

巫立成                         2

叶英才                         2

张云                           2

 

第三问

你这是统计了重复的记录,但是我怎么知道这些记录都是什么呢?

SQL> select id,name

  2   from t1

  3  where name in (select name from t1 group by name having count(name) >1)

  4  order by name;

 

        ID NAME

---------- --------------------

         2 叶英才

         9 叶英才

         6 巫立成

         8 巫立成

         1 张云

         7 张云

你可能感兴趣的:(insert,number,记录,values,created)