與psql我想統計每個唯一訪問者。如何通過動態時間間隔聚合數據
一位獨特的訪問者是一位訪問者,他在一個小時前還沒有訪問過。
因此,對於以下用戶行和時間戳,我們會得到4個唯一訪問者的總數,其中user1和user2分別計爲2。
請注意,我不想在24小時內每小時彙總一次。我想在用戶第一次訪問時間戳之後的一小時內彙總。
我猜sql直線表達式不會這樣做。
user1,"2015-07-13 08:28:45.247000"
user1,"2015-07-13 08:30:17.247000"
user1,"2015-07-13 09:35:00.030000"
user1,"2015-07-13 09:54:00.652000"
user2,"2015-07-13 08:28:45.247000"
user2,"2015-07-13 08:30:17.247000"
user2,"2015-07-13 09:35:00.030000"
user2,"2015-07-13 09:54:00.652000"
因此user1到達8點28分,這被視爲一擊。他在8點30分返回,計爲零。然後他在9點35分回來,這是從8點30分開始的一個多小時,所以他又受到了重創。然後他在9:35回來,這距離上次9:30只有5分鐘,所以這個計數爲零。用戶1總共有2次點擊。同樣的事情發生,對於user2意義兩支安打各將其帶到一個最終的總的4
'現在想'應該是'不想'我想?請始終聲明您的Postgres版本。你有單獨的用戶表嗎?實際的表定義將有助於查看數據類型和約束:CREATE TABLE腳本或psql中的\ d tbl'的輸出。對於每60分鐘訪問一次的假設用戶呢?計數爲** 0次訪問總數,即使在較長時間內也是如此?此外,嚴格來說,您的定義將在不到一小時前(從現在開始)排除訪問。 –
該版本是亞馬遜上的Redshift。所以它缺少某些postgres功能。如果用戶每60分鐘訪問一次,則每次訪問計數一次。如果用戶在60分鐘內訪問超過一次,那麼他只會計算一次。 –
紅移不是Postgres,也非常有限。我不是粉絲。請記住提供您的版本,以問題開頭。 –