psql max group by 仅针对某些列
psql max group by just for some columns
我在 psql 查询中遇到问题。我不知道如何 select 仅从两列的子集中取最大值。没有例子很难说明问题,所以我写一个:
我有一个 table 这样的:
Athlete | Category | Points
at1 | cat1 | 100
at1 | cat1 | 90
at1 | cat1 | 80
at1 | cat2 | 95
at2 | cat1 | 97
at2 | cat2 | 60
at2 | cat2 | 71
我想为每个运动员保留每个类别的最高分。所以最后的 table 应该是这样的:
Athlete | Category | Points
at1 | cat1 | 100
at1 | cat2 | 95
at2 | cat1 | 97
at2 | cat2 | 71
这是 group by
子句的经典用例 return 只有 athlete
和 category
的不同组合。然后,max(points)
可以应用于每个组合:
SELECT athlete, category, MAX(points)
FROM mytable
GROUP BY athlete, category
我在 psql 查询中遇到问题。我不知道如何 select 仅从两列的子集中取最大值。没有例子很难说明问题,所以我写一个:
我有一个 table 这样的:
Athlete | Category | Points
at1 | cat1 | 100
at1 | cat1 | 90
at1 | cat1 | 80
at1 | cat2 | 95
at2 | cat1 | 97
at2 | cat2 | 60
at2 | cat2 | 71
我想为每个运动员保留每个类别的最高分。所以最后的 table 应该是这样的:
Athlete | Category | Points
at1 | cat1 | 100
at1 | cat2 | 95
at2 | cat1 | 97
at2 | cat2 | 71
这是 group by
子句的经典用例 return 只有 athlete
和 category
的不同组合。然后,max(points)
可以应用于每个组合:
SELECT athlete, category, MAX(points)
FROM mytable
GROUP BY athlete, category