Invece di cercare di eliminare ciò che non ti serve, prova a pensarlo come un problema per cui vuoi scegliere quelli che vuoi e ignorare il resto; così:
CREATE TABLE `other_table` LIKE `part3`;
INSERT INTO `other_table`
SELECT `part3`.*
FROM (SELECT gtu, region, trait, pop, author, risk, MAX(zvalue) AS max_zval
FROM `part3`
GROUP BY gtu, region, trait, pop, author, risk
) `tmp`
INNER JOIN `part3` USING (gtu, region, trait, pop, author, risk)
WHERE `part3`.zvalue = `tmp`.max_zval;
Questo dovrebbe creare una tabella other_table
che soddisfi il vincolo univoco nei tuoi dati; solo le righe con il zvalue
più alto vengono mantenuti, gli altri rimossi (saltati).