创建最小值和最大值并将它们与时间戳值进行比较 sql
Creating min and max values and comparing them to timestamp values sql
我有一个 PostgreSQL 数据库,我有一个 table,我想查询它以确定在第一个周期 created_timestamp 和最近的周期之间更新了哪些印刷机周期created_timestamp。这里有一个table的例子,叫做event_log_summary.
press_id cycle_number created_timestamp
1 1 2020-02-07 16:07:52
1 2 2020-02-07 16:07:53
1 3 2020-02-07 16:07:54
1 4 2020-04-01 13:23:10
2 1 2020-01-13 8:33:23
2 2 2020-01-13 8:33:24
2 3 2020-01-13 8:33:25
3 1 2020-02-21 18:45:44
3 2 2020-02-21 18:45:45
3 3 2020-02-26 14:22:12
这是我用来获取 press_id、mincycle、max_cycle 三列输出的查询,但后来我想比较 maxcycle created_timestamp 和 mincycle created_timestamp 并查看两者之间是否至少有 x 时间,比如至少 1 天,我不确定如何实施。
SELECT
press_id,
MIN(cycle_number) AS minCycle,
MAX(cycle_number) AS maxCycle
FROM
event_log_detail
GROUP BY
press_id
我尝试过不同的方法,比如使用 WHERE (MAX(cycle_number) - MIN(cycle_number > 1),但我对 SQL 还很陌生,不太了解完全知道如何实现这一点。我正在寻找的输出至少有一天的差异如下:
press_id
1
3
压力机 1 和压力机 3 的最大周期 created_timestamp 与其最小周期 created_timestamp 至少相差 1 天。我只是在寻找第一个周期和最后一个周期相差至少 1 天的 press_ids,我不需要关于输出的任何其他信息,只需要一个带有 press_id 的列秒。任何帮助,将不胜感激。谢谢
您可以使用 HAVING 子句:
select press_id,
max(created_timestamp) - min(created_timestamp) as diff
from event_log_detail
group by press_id
having max(created_timestamp) > min(created_timestamp) + interval '1 day';
我有一个 PostgreSQL 数据库,我有一个 table,我想查询它以确定在第一个周期 created_timestamp 和最近的周期之间更新了哪些印刷机周期created_timestamp。这里有一个table的例子,叫做event_log_summary.
press_id cycle_number created_timestamp
1 1 2020-02-07 16:07:52
1 2 2020-02-07 16:07:53
1 3 2020-02-07 16:07:54
1 4 2020-04-01 13:23:10
2 1 2020-01-13 8:33:23
2 2 2020-01-13 8:33:24
2 3 2020-01-13 8:33:25
3 1 2020-02-21 18:45:44
3 2 2020-02-21 18:45:45
3 3 2020-02-26 14:22:12
这是我用来获取 press_id、mincycle、max_cycle 三列输出的查询,但后来我想比较 maxcycle created_timestamp 和 mincycle created_timestamp 并查看两者之间是否至少有 x 时间,比如至少 1 天,我不确定如何实施。
SELECT
press_id,
MIN(cycle_number) AS minCycle,
MAX(cycle_number) AS maxCycle
FROM
event_log_detail
GROUP BY
press_id
我尝试过不同的方法,比如使用 WHERE (MAX(cycle_number) - MIN(cycle_number > 1),但我对 SQL 还很陌生,不太了解完全知道如何实现这一点。我正在寻找的输出至少有一天的差异如下:
press_id
1
3
压力机 1 和压力机 3 的最大周期 created_timestamp 与其最小周期 created_timestamp 至少相差 1 天。我只是在寻找第一个周期和最后一个周期相差至少 1 天的 press_ids,我不需要关于输出的任何其他信息,只需要一个带有 press_id 的列秒。任何帮助,将不胜感激。谢谢
您可以使用 HAVING 子句:
select press_id,
max(created_timestamp) - min(created_timestamp) as diff
from event_log_detail
group by press_id
having max(created_timestamp) > min(created_timestamp) + interval '1 day';