另一個新手PostgreSQL的問題。如何使用表關係和時間戳選擇記錄?
我有這樣的事情:
CREATE TABLE user (
userID bigserial primary key,
name varchar(50) NOT NULL,
created timestamp NULL DEFAULT CURRENT_TIMESTAMP
)
CREATE TABLE session (
sessionID bigserial primary key,
userID int NOT NULL,
lastAction timestamp NULL DEFAULT NULL,
created timestamp NULL DEFAULT CURRENT_TIMESTAMP
)
CREATE TABLE action (
actionID bigserial primary key,
sessionID int NOT NULL,
lastAction timestamp NULL DEFAULT NULL,
created timestamp NULL DEFAULT CURRENT_TIMESTAMP
)
一個用戶可以有多個會話,每多會話的行爲。
每個用戶的會話都會過期,在這種情況下會插入一個新的會話,並在此處對他們執行的任何操作進行編錄。
我的問題是,我如何才能針對選定用戶進行抓取動作,僅限於他的會話,並且僅在1天前,2天前,一週前,一個月前或全部時間發生時間。
我看過的文檔,我認爲就是我要找的,但我只有真正懂得過期會話:
(part of a join here) e.lastAction >= now() - interval '4 hours'
那一個或者返回我我需要什麼或它沒有。但是,如何讓它返回自1天前,2天前等創建的所有記錄.SQL語法和邏輯仍然有點令人困惑。
因此,在一個理想的世界中,我會想問一個問題,例如這個用戶在兩天內採取了多少動作?我有創建的關係和時間戳,但我寫了一個查詢,我遇到了失敗。
考慮發佈相關示例數據和期望的輸出 – peterm