【发布时间】:2019-01-01 15:05:06
【问题描述】:
我有一个 timeTracks 表,其中包含为另一个名为 project 的表记录的属性 startTime 和 stopTime。
通过以下聚合,我设法显示了属于一个项目的轨道数量的计数和总和。如果存在活动轨道(一个没有 stopTime),我想要另外 2 个名为“activeTrackId”和“activeTrackStartTime”的列。
SLECT
count(time_track."timeTrackId") AS "timeTracksTotalCount",
floor(date_part('epoch'::text, sum(time_track."stopTime" - time_track."startTime")))::integer AS "timeTracksTotalDurationInSeconds"
activeTimeTrackId ??
activeTimeTrackStartTime ??
...
FROM project
LEFT JOIN time_track on time_track."fkProjectId" = project."projectId"
从技术上讲,一次只能有一个活动曲目。但是为了以防万一,它应该只选择最新的活动轨道,如果有两个轨道没有停止时间。
我怎样才能在 postgres 中做到这一点?
【问题讨论】:
-
您的查询是否有
group by?样本数据和期望的结果会有所帮助。
标签: sql postgresql