次のような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...
重複するエントリを削除したいのですが、そのうちの 1 つを残します。たとえば、最初の行を保持したいが、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;
ご助力ありがとうございます。