2013-05-27 57 views
0

聚集我有與具有會話ID的網絡日誌條目日誌表的數。我還有一個會話表,總結了上表中的會話。所以我必須運行一些更新的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

你是什麼意思的「事件數」嗎?另外,彙總表中還有哪些其他字段? –

+0

我的意思是具有相同會話ID的號碼日誌條目。還有一些其他字段,例如會話開始時間,用戶代理等,但這些字段已填充,因此需要單獨更新。 – kee

回答

1

您可以在update語句中的相關子查詢做到這一點:

update sessions 
    set session_length = (select count(*) 
          from log 
          where log.sessionid = sessions.sessionid 
         ) 
相關問題