gpt4 book ai didi

SQL - 分组 session 日志条目并按 session 开始时间对组进行排序

转载 作者:行者123 更新时间:2023-12-04 06:22:03 26 4
gpt4 key购买 nike

我是 SQL 新手,无法找到如何进行以下查询。当然,我缺少一个非常基本的表达方式,但我自己找不到。

我有下表,用于存储应用程序日志条目。每个条目都有一个记录时间戳、创建该条目的应用程序的标识符、应用程序实际执行的操作以及该应用程序实例的给定 session 的唯一 ID。

item_id item_datetime 应用操作 session_id
1 2011-06-20 19:01:04 开始 23B6C531-6D38-4E47-A887-10B945B48BD9
2 2011-06-20 19:01:05 b 开始 7E6D0F55-4280-46DF-A829-F6821FF028D5
3 2011-06-20 19:03:45 b 作业 7E6D0F55-4280-46DF-A829-F6821FF028D5
4 2011-06-20 19:09:33 一份工作 23B6C531-6D38-4E47-A887-10B945B48BD9
5 2011-06-20 19:27:00 退出 23B6C531-6D38-4E47-A887-10B945B48BD9
6 2011-06-20 19:50:00 c 开始 12345678-1234-4321-1234-109876543210
7 2011-06-20 19:50:01 c 退出 12345678-1234-4321-1234-109876543210
8 2011-06-20 19:50:22 b 退出 7E6D0F55-4280-46DF-A829-F6821FF028D5

在此示例中,有 3 个不同的应用程序“a”、“b”和“c”同时执行,每个 session 与其他 session 重叠。我需要的是按 session 分组的列表, session (结果组)应按 session 开始时间排序。
对于上面的示例表,我希望得到以下结果:

item_id item_datetime 应用操作 session_id
1 2011-06-20 19:01:04 开始 23B6C531-6D38-4E47-A887-10B945B48BD9
4 2011-06-20 19:09:33 一份工作 23B6C531-6D38-4E47-A887-10B945B48BD9
5 2011-06-20 19:27:00 退出 23B6C531-6D38-4E47-A887-10B945B48BD9

2 2011-06-20 19:01:05 b 开始 7E6D0F55-4280-46DF-A829-F6821FF028D5
3 2011-06-20 19:03:45 b 作业 7E6D0F55-4280-46DF-A829-F6821FF028D5
8 2011-06-20 19:50:22 b 退出 7E6D0F55-4280-46DF-A829-F6821FF028D5

6 2011-06-20 19:50:00 c 开始 12345678-1234-4321-1234-109876543210
7 2011-06-20 19:50:01 c 退出 12345678-1234-4321-1234-109876543210

我尝试使用 order by 分组,但问题是结果的排序基于 session_id 的字母顺序 - 但这不是我需要的, session id 的唯一性很重要,它们的“值”并不重要。

最佳答案

您可以使用子查询来查找看到 session 的第一个日期。这允许您订购 session :

select  yt.item_id
, yt.item_datetime
, yt.app
, yt.action
, yt.session_id
from (
select session_id
, min(item_datetime) as MinDate
from YourTable
group by
session_id
) sessions
left join
YourTable yt
on yt.session_id = sessions.session_id
order by
session.MinDate
, yt.item_datetime

关于SQL - 分组 session 日志条目并按 session 开始时间对组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6427265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com