一个经典的问题:如何从表中找到并去掉重复的数据? 解决这个问题的方式真的有很多,让我们来举出几种吧。
举例:删除id和那么都重复的数据
SQL> select * from b;
ID NAME
---------- ----------
1 aa
2 bb
3 cc
4 dd
1 aa
2 bb
3 cc
4 dd
8 rows selected.
1.用distinct查询来重建表
SQL> create table b_bak as select distinct id,name from b;
Table created.
SQL> rename b to b1;
Table renamed.
SQL> rename b_bak to b;
Table renamed.
SQL> select * from b;
ID NAME
---------- ----------
1 aa
2 bb
4 dd
3 cc
这种方式对于大表来说要消耗多余的空间,而且线上系统可能会造成数据的丢失。
使用group by来去重和这种方式类似,逻辑读少些,但是根