将一组数据的最后一个和第一个时间戳数据组合在一行中
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;
我有一个屏幕截图 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;