2015-06-13 60 views
1

我在psql查詢中遇到問題。我不知道如何僅從兩列的子集中選擇最大值。這很難不一個例子來說明這個問題,所以我寫一個:psql max group by just for some columns

我有一個這樣的表:

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 

回答

3

這是一個典型的用例爲group by條款只返回不同的athletecategory組合。然後,max(points)可應用於每種組合:

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