SELECT по уникальному столбцу (DISTINCT?) - PullRequest
0 голосов
/ 07 января 2020

У меня есть запрос, дающий мне следующую таблицу (ORDER BY b):

a  b    c
1  100  x1
1  90   x2
2  85   y1
1  80   x3
2  75   y2
2  70   y3
1  65   x4

Я хочу получить следующий вывод:

a  b   c
1  100 x1
2  85  y1

Так, чтобы значение в уникален, но это должна быть строка с b как наибольшее значение. Каков наилучший способ достичь этого?

Ответы [ 2 ]

3 голосов
/ 07 января 2020

В Postgres вы можете использовать distinct on:

select distinct on (a) t.*
from mytable t
order by a, b desc
0 голосов
/ 07 января 2020

Вы можете использовать inner join

select * from TableName as t1
  inner join (
  select a,max(b) as b from TableName
  group by a
) as sub_table on sub_table.a = t1.a and sub_table.b = t1.b
...