psql max group仅适用于某些列

时间:2015-06-13 09:52:12

标签: sql postgresql select max psql

我在psql查询中遇到问题。我不知道如何仅从两列的子集中选择最大值。没有例子就很难解释这个问题,所以我写了一个:

我有一张这样的表:

   Athlete | Category | Points

      at1  |  cat1    | 100
      at1  |  cat1    | 90
      at1  |  cat1    | 80
      at1  |  cat2    | 95
      at2  |  cat1    | 97
      at2  |  cat2    | 60
      at2  |  cat2    | 71

我想为每位运动员保留每个类别的最高分。所以决赛桌应该是这样的:

   Athlete | Category | Points

      at1  |  cat1    | 100
      at1  |  cat2    | 95
      at2  |  cat1    | 97
      at2  |  cat2    | 71

1 个答案:

答案 0 :(得分:3)

这是group by子句的经典用例,只返回athletecategory的不同组合。然后,max(points)可以应用于每个组合:

SELECT   athlete, category, MAX(points)
FROM     mytable
GROUP BY athlete, category