撰寫一個查詢,回傳“反彈”中涉及的所有 url。如果單個用戶從 Y 頁面導航到 X 頁面,然后立即回傳到 Y 頁面,而中間沒有訪問其他頁面,則 url X 會參與跳出。也就是說,您需要為同一用戶 u 找到兩次訪問 X->Y(日期 d1)和 Y->X(日期 d2),而 u 在 d1 和 d2 之間沒有其他訪問。
您可以像數字一樣比較日期:如果日期 d1 早于日期 d2,則 d1 < d2 為真。
我自己加入了這張桌子:
| 網址 | dt | 用戶界面 | 源檔案 | 轉 |
|---|---|---|---|---|
| A04 | 1890-05-14 | 一種 | A01 | 10 |
| A02 | 1890-05-15 | 一種 | A04 | 15 |
| A01 | 1890-05-16 | 一種 | A04 | 20 |
這是我的查詢:
Select *
FROM Visit V1, Visit V2
WHERE V1.url = V2.src
AND V1.src = V2.url
AND V1.dt < V2.dt
AND V1.uid = V2.uid
我了解單個用戶和導航部分,以及比較日期部分。
A01 在這里不起作用,因為單個用戶 A 從 A01 -> A04 -> A01 導航,但是,用戶訪問了 A02 之間,因此它將回傳一個空集。我將如何使它僅在單個用戶在來回導航時不訪問其他頁面時才回傳網址?
uj5u.com熱心網友回復:
您可以在 where 子句中添加另一個條件,如下所示:
AND NOT EXISTS (SELECT * FROM Visit visit WHERE visit.uid=V1.uid and visit.dt>V1.dt AND visit.dt<V2.dt)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/351116.html
上一篇:三張表,一張外鍵參考其他兩張表
下一篇:計算不同的出現次數并添加它們
