我有一个包含会话ID的Web日志条目的日志表。我还有一个会话表,总结了上表中的会话。所以我必须运行一些更新SQL语句,但我不知道如何为名为“session_length”的字段构造SQL语句。在这个领域,我希望分配该特定会话中的事件数量。
假设我有以下日志表:
| Session ID | Timestamp | Action | ...
| 1 | 00:00:00 | get | ...
| 2 | 00:00:00 | get | ...
| 1 | 00:00:01 | get | ...
| 1 | 00:00:02 | get | ...
| 2 | 00:00:02 | get | ...
在会话表中,我希望session_length字段具有以下值:
| Session ID | session_length | ...
| 1 | 3 | ...
| 2 | 2 | ...
我不确定这是否可以通过单个查询完成,但我想看看是否可以通过使用update的单个SQL查询来完成。特别是,我在AWS RedShift中使用PostgresSQL。
答案 0 :(得分:1)
您可以使用update
语句中的相关子查询执行此操作:
update sessions
set session_length = (select count(*)
from log
where log.sessionid = sessions.sessionid
)