我在 sql 中有一个表,如下所示:
1 1w10 U UROK_HUMAN IIGGEFTTIENQPWFAAIYRRHRGGSVTYVCGGSLISPCWVISATHCFID...
2 1w11 U UROK_HUMAN IIGGEFTTIENQPWFAAIYRRHRGGSVTYVCGGSLISPCWVISATHCFID...
3 1w12 U UROK_HUMAN IIGGEFTTIENQPWFAAIYRRHRGGSVTYVCGGSLISPCWVISATHCFID...
4 1w13 U UROK_HUMAN IIGGEFTTIENQPWFAAIYRRHRGGSVTYVCGGSLISPCWVISATHCFID...
5 1w14 U UROK_HUMAN IIGGEFTTIENQPWFAAIYRRHRGGSVTYVCGGSLISPCWVISATHCFID...
6 1w15 A SYT4_RAT GSPGISGGGGGIPSGRGELLVSLCYQSTTNTLTVVVLKARHLPKSDVSGL...
7 1w16 A SYT4_RAT GSPGISGGGGGIPSGRGELLVSLCYQSTTNTLTVVVLKARHLPKSDVSGL...
8 1w17 B PDAA_BACSU MKWMCSICCAAVLLAGGAAQAEAVPNEPINWGFKRSVNHQPPDAGKQLNS...
10 1w18 B SACB_ACEDI AGVPGFPLPSIHTQQAYDPQSDFTARWTRADALQIKAHSDATVAAGQNSL...
12 1w18 E SACB_ACEDI MKGGAGVPDLPSLDASGVRLAIVASSWHGKICDALLDGARKVAAGCGLDD...
我想删除重复的条目,但留下其中一个。例如,我想保留第一行但删除 2、3、4、5。简而言之,我想删除具有相同第 4 列值(此处为 UROK-HUMAN)但具有不同 col2 和 col3 值的行(此处为 1w10、1w11 等(col2)和 U、A、B(col3))。
但是,我不想删除具有相同 col4 值(SACB-ACEDI)的 col2 和 col3(1w18 BE)的条目。
如何编写和 sql 语句来删除这些行?我试着写喜欢但没有工作:
SELECT pdb, chain, unp, sekans, COUNT(*) AS ct
FROM protein
JOIN (SELECT DISTINCT(unp)
FROM protein
GROUP by pdb) protein2 ON protein2.unp = protein.unp;
非常感谢您的帮助。