我有一个包含以下架构和示例值的表。
我正在尝试编写一个查询,该查询将为每个用户提供连接状态以及断开状态的max(timestamp)。
我正在寻找所需查询的输出模式示例为:
用户名| Connected_MAX_Timestamp | Disconnected_MAX_Timestamp
我尝试过的查询是这样的:
从socketinfo组中按用户名,socketstatus选择用户名,socketstatus,max(timestamp)
和相同的输出是:
有人可以告诉我如何实现所需的输出吗?
最佳答案
只需使用条件聚合:
select username,
max(case when socketstatus = 'Connected' then timestamp end) as max_connected_timestamp,
max(case when socketstatus = 'Disconnected' then timestamp end) as max_disconnected_timestamp,
from socketinfo
group by username;