将一组数据的最后一个和第一个时间戳数据组合在一行中

Combining last and first timestamp data of a group data in 1 row

我有一个屏幕截图 table 我想获取用户屏幕截图时间开始和屏幕截图时间结束。我想创建一个查询,以便能够导出数据以提供给我的用户。

假设这是我的 table 数据。

scs_id scs_tracker_id created_at
1 1000 2022-02-22 00:00:00
2 1001 2022-02-22 04:00:00
3 1000 2022-02-22 01:00:00
4 1002 2022-02-22 12:00:00
5 1001 2022-02-22 08:00:00
3 1000 2022-02-22 02:00:00

我的预期输出应该是:

scs_tracker_id screenshot_starts screenshot_ends
1000 2022-02-22 00:00:00 2022-02-22 02:00:00
1001 2022-02-22 04:00:00 2022-02-22 08:00:00
1002 2022-02-22 12:00:00 2022-02-22 12:00:00

我目前正在玩的代码:

SELECT 
(SELECT MIN(created_at) FROM screen_shots GROUP BY scs_tracker_id ORDER BY scs_id ASC LIMIT 1) AS screenshot_starts,
(SELECT MAX(created_at) FROM screen_shots GROUP BY scs_tracker_id ORDER BY scs_id DESC LIMIT 1) AS screenshot_ends
FROM screen_shots

按跟踪器 ID 聚合,然后取 min/max 时间戳:

SELECT
    scs_tracker_id,
    MIN(created_at) AS screenshot_starts,
    MAX(created_at) AS screenshot_ends
FROM screen_shots
GROUP BY scs_tracker_id;