我在 psql 查询中遇到问题。我不知道如何从两列的子集中选择最大值。没有例子很难解释这个问题,所以我写了一个:
我有一张这样的 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
子句的一个经典用例,它只返回 athlete
和 category
的不同组合。然后,max(points)
可以应用于每个组合:
SELECT athlete, category, MAX(points)
FROM mytable
GROUP BY athlete, category
关于sql - psql max group by 仅针对某些列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30817316/