我的桌子是:
<button onclick="chechAnswer()">Play</button>
我想按类型分组,并为每个分组找到最高价格和最早(按时间)价格。
从计算角度来看,这是一个简单的线性/类似约简运算。但是如何在postgres中完成呢?有这样的现有功能吗?我必须创建自己的聚合吗?我应该将两个字段编码成一个像price: numeric, time: timestamp, type: integer
这样的字段,并从中找出最小值吗?
答案 0 :(得分:1)
嗯。 Postgres没有first()
聚合函数,但是您可以改用数组:
select type,
max(price),
array_agg(price order by time asc)[1] as earliest_price
from t
group by type;
编辑:
还有其他方法,例如:
select distinct on (type) type,
max(price) over (partition by type),
price
from t
order by type, time asc;