我有一個數據集,看起來像這樣:相對ROW_NUMBER()在PostgreSQL的
SessionID URL created rownum
abc www.google.com/page1 2016-08-01 1
abc www.google.com/page2 2016-08-02 2
abc www.google.com/blah 2016-08-03 3
abc www.google.com/page3 2016-08-04 4
abc www.google.com/page4 2016-08-05 5
,我想有一個輸出看起來像這樣:
SessionID URL created rownum newrownum
abc www.google.com/page1 2016-08-01 1 -2
abc www.google.com/page2 2016-08-02 2 -1
abc www.google.com/blah 2016-08-03 3 0
abc www.google.com/page3 2016-08-04 4 1
abc www.google.com/page4 2016-08-05 5 2
換句話說,我希望看到session
正在訪問特定頁面blah
,我希望看到在此特定頁面之前和之後訪問的頁面。請注意,session
中的頁面按照created
字段進行排序。
select
sessionid,
url,
created,
row_number() over(partition by sessionid order by created) as rownum
from
<tablename>
order by
sessionid,
created
我不知道如何獲取相對於某一頁負值行號:
我使用下面的查詢產生的rownum
列。這是必需的,所以我可以繪製頁面blah
前後訪問的頁面種類。當然,可以在同一個會話中對同一頁面blah
進行多次訪問。在這種情況下,應將第一次訪問視爲第零次訪問(newrownum
列中的值爲0)。
非常感謝您提供了一個簡單的答案,它非常有意義。工作就像一個魅力:)。 – Patthebug