如何选择与PostgreSQL中另一列的最高值对应的唯一列值对的行?

如何选择与PostgreSQL中另一列的最高值对应的唯一列值对的行?,sql,postgresql,group-by,greatest-n-per-group,Sql,Postgresql,Group By,Greatest N Per Group,我的桌子看起来像这样: A. B X 1. 1. 1. 1. 1. 2. 1. 1. 3. 1. 2. 1. 1. 2. 2. 2. 2. 1. 2. 2. 2. 2. 2. 3. 您可以按如下方式使用MAX聚合函数: select A, B, MAX(X) AS X from YOUR_TABLE group by A, B 这将是这样的: select * from a where x = (select max(x) from a) 我建议您在上使用不同的: select dist

我的桌子看起来像这样:

A. B X 1. 1. 1. 1. 1. 2. 1. 1. 3. 1. 2. 1. 1. 2. 2. 2. 2. 1. 2. 2. 2. 2. 2. 3.
您可以按如下方式使用
MAX
聚合函数:

select A, B, MAX(X) AS X
  from YOUR_TABLE
group by A, B

这将是这样的:

select * from a where x = (select max(x) from a)

我建议您在上使用不同的

select distinct on (a, b) t.*
from t
order by a, b, x desc;
这允许您从行中选择除
a
b
x
之外的其他列

如果索引位于
(a,b,x desc)
,这通常是最快的解决方案