I have a query
  SELECT grouping_field, MIN(field_a), MIN(field_b)
  FROM ...
  GROUP BY grouping_field
But, instead of picking the MIN field_a and MIN field_b, I'd like to
pick field_a and field_b from the first record, according to an order
I'll specify.  In pseudo-SQL, it would be something like this:
  SELECT grouping_field, FIRST(field_a), FIRST(field_b)
  FROM ...
  ORDER BY field_c DESC, field_d ASC, myfunc(field_e) ASC
  GROUP BY grouping_field
How can I do that with Postgres?