【发布时间】:2020-12-10 10:52:02
【问题描述】:
我有一个如下的 postgres 表
| Username | Event | Date |
|---|---|---|
| UserA | Log in | 02/03/2020 07:06:30 |
| UserA | Log in | 02/03/2020 10:15:15 |
| UserA | Log in | 02/03/2020 10:17:01 |
| UserA | Log Out | 02/03/2020 10:28:55 |
| UserA | Log in | 02/07/2019 14:56:15 |
| UserA | Log in | 02/08/2019 10:50:34 |
| UserA | Log Out | 02/08/2019 10:57:21 |
试图实现的结果表如下:
| Username | log_in_Event | log_in_Date | log_out_event | log_out_date |
|---|---|---|---|---|
| UserA | Log in | 02/03/2020 07:06:30 | null | null |
| UserA | Log in | 02/03/2020 10:15:15 | null | null |
| UserA | Log in | 02/03/2020 10:17:01 | Log Out | 02/03/2020 10:28:55 |
| UserA | Log in | 02/07/2019 14:56:15 | null | null |
| UserA | Log in | 02/08/2019 10:50:34 | Log Out | 02/08/2019 10:57:21 |
我已经尝试过的查询如下:
select * from
(
select "User Name" , "Event" , "Date" , "IP Address"
from log_activities log_in
where "Event" = 'User Logged In'
)log_in
left join
(
select "User Name" , "Event" , "Date" , "IP Address"
from log_activities log_out
where "Event" = 'User Logged Out'
)log_out
on
log_in."User Name" = log_out."User Name"
and TO_DATE(log_in."Date" ,'DD/MM/YYYY') = TO_DATE(log_out."Date" ,'DD/MM/YYYY')
and log_in."Date" < log_out."Date"
and log_in."IP Address" = log_out."IP Address"
【问题讨论】:
-
您还没有真正问过问题 - 您当前的输出是什么,您需要什么帮助?
-
我需要一个查询来帮助我实现第二个表
标签: sql postgresql datetime gaps-and-islands