Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 创建组后x天生成组成员身份计数_Postgresql - Fatal编程技术网

Postgresql 创建组后x天生成组成员身份计数

Postgresql 创建组后x天生成组成员身份计数,postgresql,Postgresql,我有一个包含组id、成员id和创建位置的表 我正试图追踪团队成员随时间的增长情况。由于组id是在第一个成员id加入时创建的,因此给定组的mincreated应该给出创建日期。我认为这段错误的代码说明了我在本例中试图在月份级别执行的操作: SELECT brand_id, min(created_at) as created_date, min(created_at) + INTERVAL '1 month' as end_date, count(member_id

我有一个包含组id、成员id和创建位置的表

我正试图追踪团队成员随时间的增长情况。由于组id是在第一个成员id加入时创建的,因此给定组的mincreated应该给出创建日期。我认为这段错误的代码说明了我在本例中试图在月份级别执行的操作:

   SELECT brand_id,
    min(created_at) as created_date,
    min(created_at) + INTERVAL '1 month' as end_date, 
    count(member_id)
   FROM member_group
   HAVING created_at < end_date 
   group by 1

在我看来,您正在寻找这样的查询:

SELECT g.brand_id, x.created_date, x.end_date, count(g.member_id)
FROM member_group g
JOIN (
  SELECT brand_id,
      min(created_at) as created_date,
      min(created_at) + INTERVAL '1' month as end_date
  FROM member_group
  GROUP BY brand_id
) x 
ON ( g.brand_id = x.brand_id
     AND g.created_at BETWEEN x.created_date AND x.end_date )
GROUP BY g.brand_id, x.created_date, x.end_date
select brand_id, count(created_at < brand_date + interval '1 month' or null) as total from member_group inner join ( select brand_id, min(created_at) as brand_date from member_group group by 1 ) s using (brand_id) group by 1 order by 1 ;