首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >postgres:多个字段上的聚合函数

postgres:多个字段上的聚合函数
EN

Stack Overflow用户
提问于 2019-03-27 22:36:44
回答 1查看 46关注 0票数 0

我的表格是:

代码语言:javascript
复制
price: numeric, time: timestamp, type: integer

我想按类型分组,并为每个组找到最高价格和最早(按时间)价格。

从计算的角度来看,这是一个简单的线性/归约操作。但是在postgres中怎么做呢?有没有像这样的现有函数?我必须创建我自己的聚合吗?我是不是应该像$time-$price一样把两个字段编码成一个,然后从中找出最小值?

EN

回答 1

Stack Overflow用户

发布于 2019-03-27 22:38:00

嗯。Postgres没有first()聚合函数,但您可以使用数组来代替:

代码语言:javascript
复制
select type,
       max(price),
       array_agg(price order by time asc)[1] as earliest_price
from t
group by type;

编辑:

还有其他方法,例如:

代码语言:javascript
复制
select distinct on (type) type,
       max(price) over (partition by type),
       price
from t
order by type, time asc;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55379861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档