you can also create a couple of queries:
Query1:
SELECT TableName.Colour, Min(TableName.Rate) AS MinOfRate
FROM TableName
GROUP BY TableName.Colour;
Query2:
DELETE TableName.*, Query1.Colour, Query1.MinOfRate
FROM TableName LEFT JOIN Query1 ON (TableName.Rate = Query1.MinOfRate) AND...