首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL -从两个不同的表中获取日期差异的总和

PostgreSQL -从两个不同的表中获取日期差异的总和
EN

Stack Overflow用户
提问于 2021-11-23 05:15:59
回答 1查看 15关注 0票数 0

以下代码:

代码语言:javascript
复制
SELECT ets.event_id, ets.event_date, dtn.don_date, dtn.don_date - ets.event_date AS date_diff FROM events ets, donation dtn
GROUP BY ets.event_id, ets.event_date, dtn.don_date
Order BY ets.event_id;

产生以下结果:

我的目标是获得每个event_id的event_date和don_date之间的平均持续时间,但我似乎找不到方法。

EN

回答 1

Stack Overflow用户

发布于 2021-11-23 05:43:31

avg()应用于计算并仅按event_id分组:

代码语言:javascript
复制
SELECT
  ets.event_id,
  avg(dtn.don_date - ets.event_date) AS avg_date_diff
FROM events ets
CROSS JOIN donation dtn
GROUP BY ets.event_id
ORDER BY ets.event_id

之所以在这里使用CROSS JOIN,是因为这就是问题中的查询所做的事情,但我怀疑这是否真的是我们想要的。

更有可能的是,需要一个连接。可能是这样的:

代码语言:javascript
复制
SELECT
  ets.event_id,
  avg(dtn.don_date - ets.event_date) AS avg_date_diff
FROM donation dtn
JOIN events ets on ets.donation_id = dtn.id
GROUP BY ets.event_id
ORDER BY ets.event_id

但是连接的列名没有包括在问题中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70075729

复制
相关文章

相似问题

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