You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PostgreSQL中检索用户首次回答后一周内的行数据?

筛选用户首次回答一周内的所有记录

现有表t_answer,结构及数据如下:

user_idcreated_atanswer
12023-01-011a
12023-01-021b
12023-01-111c
22023-02-052a
22023-02-202a

需要检索每个用户首次回答的created_at日期起一周时间间隔内的行数据,期望结果如下:

user_idcreated_atanswer
12023-01-011a
12023-01-021b
22023-02-052a

对应的PostgreSQL查询语句

SELECT user_id, created_at, answer
FROM (
    SELECT 
        user_id,
        created_at,
        answer,
        MIN(created_at) OVER (PARTITION BY user_id) AS first_answer_date
    FROM t_answer
) AS sub
WHERE created_at <= first_answer_date + INTERVAL '1 week';

语句说明

  1. 子查询中使用窗口函数MIN(created_at) OVER (PARTITION BY user_id),按user_id分组后计算每个用户的首次回答日期,命名为first_answer_date。
  2. 外层查询筛选出created_at小于等于first_answer_date加一周的记录,即保留该用户首次回答一周内的所有数据。

内容的提问来源于stack exchange,提问作者Selcuk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 06:42:47