Weimao Ke wrote:
Hi,

I need a special aggregation function. For instance, given the following table data:

  aid    |   cat   | weight
----------+---------+---------
a1  | Drama   |       1
a1  | Romance |       6
a1  | Short   |       1
a1 | Other   |       7
a2  | Comedy  |       1
a2 | Drama   |       2
a3  | Drama   |       1
a3 | Adult   |       2
a3 | Comedy  |       1
a3 | Other   |       1

I want to group by "aid" and choose the category (i.e., "cat") with the largest "weight":

aid   |   max_weighted_cat
----+---------------------
a1   |   Other
a2   |   Drama
a3   |   Adult

Any ideas? Thank you! :)


Should be able to do this with a standard max() aggregate.

select aid, cat, max(weight)
from table
group by aid, cat;

Jeff

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

              http://archives.postgresql.org

Reply via email to