Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 您可以在RDBMS中对Weblog进行会话化吗_Sql_Database_Postgresql_Hadoop_Rdbms - Fatal编程技术网

Sql 您可以在RDBMS中对Weblog进行会话化吗

Sql 您可以在RDBMS中对Weblog进行会话化吗,sql,database,postgresql,hadoop,rdbms,Sql,Database,Postgresql,Hadoop,Rdbms,只是一个一般性的问题。您可以在RDBMS中对日志进行会话化吗 例如,假设您只有三列1)时间戳2)URL 3)用户ID是否可以基于传统RDBMS中X分钟的活动对日志进行会话化。输出可能看起来像四列:1)时间戳2)URL 3)用户ID 4)会话ID 我想不是,但我想听听其他人的意见 谢谢这有点棘手,但可以使用嵌套的窗口聚合函数完成,如 SELECT timestamp, UserID, URL, SUM(newSession) -- cumulative sum over 0/1 OVE

只是一个一般性的问题。您可以在RDBMS中对日志进行会话化吗

例如,假设您只有三列1)时间戳2)URL 3)用户ID是否可以基于传统RDBMS中X分钟的活动对日志进行会话化。输出可能看起来像四列:1)时间戳2)URL 3)用户ID 4)会话ID

我想不是,但我想听听其他人的意见


谢谢

这有点棘手,但可以使用嵌套的窗口聚合函数完成,如

SELECT timestamp, UserID, URL,
   SUM(newSession) -- cumulative sum over 0/1
   OVER (PARTITION BY UserId
         ORDER BY timestamp
         ROWS UNBOUNDED PRECEDING) AS SessionID
FROM
 (
   SELECT 
      ts_col, UserID, URL,
      -- calculate the timestamp difference between current and previous row
      CASE WHEN timestamp - LAG(timestamp) 
                            OVER (PARTITION BY UserId 
                                  ORDER BY timestamp) > INTERVAL 'X minutes' 
           THEN 1  -- new session starts
           ELSE 0  -- part of the old session
      END AS newSession
 ) AS dt
一些DBMS(例如Vertica和Aster)支持使用内置函数进行会话,而在其他DBMS中,您可以实现用户定义的函数