0

我有一个日志表,其中包含具有会话 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。

4

1 回答 1

1

update您可以使用语句中的相关子查询来执行此操作:

update sessions
    set session_length = (select count(*)
                          from log
                          where log.sessionid = sessions.sessionid
                         )
于 2013-05-28T01:13:29.783 回答