I stedet for at prøve at slette det, du ikke har brug for, så prøv at tænke på det som et problem, hvor du vil vælge dem, du vil have, og ignorere resten; sådan:
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;
Det skulle skabe en tabel other_table
der opfylder den unikke begrænsning i dine data; kun rækkerne med den højeste zvalue
beholdes, de andre fjernes (springes over).