我正在尝试RANGE在窗口函数中使用 postgres子句将窗口动态设置为过去 4 周,不包括当前日期。这是我的尝试:
SELECT date("aa0"."created_at") AS "Day of Created At",
"aa0"."user_id" AS "User Id",
count (*) activities_today,
count(*) over (PARTITION BY "aa0"."user_id"
ORDER BY date("aa0"."created_at") ASC
RANGE BETWEEN date("aa0"."created_at" - interval '4 weeks')
AND
date("aa0"."created_at" - interval '1 day')
) active_days_past_4_weeks
FROM "public"."activity_activity" AS "aa0"
GROUP BY date("aa0"."created_at"), "aa0"."user_id"
ORDER BY "Day of Created At" ASC LIMIT 1000;
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
ERROR: syntax error at or near ")" Position: 459
Run Code Online (Sandbox Code Playgroud)
如果我使用ROWS而不是RANGE它有效,但这不是正确的逻辑,因为不能保证每天都会有一行:
SELECT date("aa0"."created_at") AS "Day …Run Code Online (Sandbox Code Playgroud)