The problem is, 2 or more people at the same postcode are NOT duplicates, so how can the DBMS decide which person to return? If you just want one arbitrary person per postcode, then you can do this:
SELECT postcode, MIN(name)
FROM people
GROUP BY postcode;
That gets you one person per postcode (the one with the "minimum" name!) But you are still missing the address details. You can't use MIN on those fields as well, otherwise you will end up with a dog's breakfast of values from different people. So you do this:
SELECT name, address1, address2, county, postcode
FROM people
WHERE (postcode, name) IN
( SELECT postcode, MIN(name)
FROM people
GROUP BY postcode
);