2015-06-13 3 views
1

У меня проблема в запросе psql. Я не знаю, как выбрать только максимальное значение из подмножества из двух столбцов. Это очень трудно объяснить проблему без примера, поэтому я пишу одно:psql max группа только для некоторых столбцов

У меня есть таблица вроде этого:

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

Это классический UseCase для предложения group by возвращать только различные комбинации athlete и category. Затем к каждой комбинации могут применяться max(points):

SELECT athlete, category, MAX(points) 
FROM  mytable 
GROUP BY athlete, category 
Смежные вопросы