如何使用SQL查询从表中删除重复项

use*_*er7 4 sql t-sql

我有一张表如下:

emp_name   emp_address  sex  matial_status  
uuuu       eee          m    s
iiii       iii          f    s
uuuu       eee          m    s
Run Code Online (Sandbox Code Playgroud)

我想基于3个字段emp_name,emp_address和sex删除重复的条目.我的结果表(在删除重复之后)应该看起来像 -

emp_name    emp_address   sex   marital_status
uuuu        eee           m     s
iiii        iii           f     s
Run Code Online (Sandbox Code Playgroud)

我无法回想起如何为此编写SQL查询.有人帮忙吗?

Kus*_*nda 5

我会创建一个新表,在您希望保持唯一的列上具有唯一索引.然后从旧表插入到新表中,忽略有关重复行的警告.最后,我会删除(或重命名)旧表并将其替换为新表.在MySQL中,这看起来像

CREATE TABLE tmp LIKE mytable;
ALTER TABLE tmp ADD UNIQUE INDEX myindex (emp_name, emp_address, sex, marital_status);
INSERT IGNORE INTO tmp SELECT * FROM mytable;
DROP TABLE mytable;
RENAME TABLE tmp TO mytable;
Run Code Online (Sandbox Code Playgroud)

或类似的东西(这是完全未经测试的).