【发布时间】:2021-06-13 14:15:13
【问题描述】:
我有一个包含三列的输入表:
-
id=> 字符串 -
start_date=> 时间戳 -
end_date=> 时间戳
我想获取每个工作日记录的平均持续时间(以秒为单位)(end_date - start_date)。
我的问题是:如果我有一个记录,其中 start_date 和 end_date 之间的间隔为 4 天,我想每天得到结果,不仅在 start_date 或 end_date,如果我之间没有记录以 3 周为例,将工作日的平均值视为“零”值。
例子:
| id | start_date | end_date |
|---|---|---|
| 1 (Friday to Sunday) | 2021-03-12T01:00:00.000Z | 2021-03-14T01:00:00.000Z |
| 2 (Friday) | 2021-03-12T01:00:00.000Z | 2021-03-12T05:00:00.000Z |
| 3 (Wed.) | 2021-03-03T16:00:00.000Z | 2021-03-03T17:00:00.000Z |
预期结果(这里以欧洲工作日为例,星期日是 7 点):
| weekday | avg_duration_seconds |
|---|---|
| 1 | 0 |
| 2 | 0 |
| 3 | 1800 |
| 4 | 0 |
| 5 | 48600 |
| 6 | 86400 |
| 7 | 3600 |
感谢您的帮助!
【问题讨论】:
-
什么是
weekday?这不在您的数据中,也未在问题中定义。 -
星期几,1代表星期一,2代表星期二,... 7代表星期日
-
CockroachDB 或 Postgres。尽管 Cockroach 声称“兼容”,但它们与 Postgres 并不完全相同
-
同意你的观点,但不是这里的主题。
-
2021-03-02 是星期二,不是星期三,2021-03-11 是星期四,不是星期五
标签: sql postgresql cockroachdb