I immediately thought of a previous post of mine:
Re: Tabular Data, Group By Functions -- If this data were in a database, this would be a simple SQL statement (assuming cols in Joost's solution):
SELECT DISTINCT a, b, c FROM your_table; (or could do
GROUP BY a, b, c HAVING count(*) = 1 (or count(*)>1, etc))
Pros/cons are addressed in the aforementioned node & replies. If this data is coming from (or going to) a database and there isn't one available (though don't need one w/
DBD::AnyData), then may not be worth it, but just food for thought (especially since I don't know the larger context of your application/requirements/environment).