【发布时间】:2020-07-27 13:17:18
【问题描述】:
我正在处理成员数据。我有负责的教练、教练对象的进入、退出状态和日期。因为有些教练可能会在一个月内毕业/离开,所以我想计算一个每日人数,然后得到每个教练的月活跃成员平均值。这意味着我需要将前几个月的所有受训者记入账户,这些受训者在当月仍然活跃。这是我的数据:
我正在考虑首先创建一个变量,以便获取每位教练的每日活跃会员数。这是我的第一种方法:
with all_years as (
select y.year, m.month, d.day
from generate_series(2019, 2022) as y(year)
cross join generate_series(1, 12) as m(month)
cross join generate_series(1, 31) as d(day) --<<*not sure how to adjust for days with less than 31 days??*
select ay.*, coach, coachee, entry_status, entry_date, exit_reason, exit_date, sum(count) over (partition by ay.coach order by ay.year, ay.month, ay.day)
from all_years ay
left join table t
on --.... *not sure what I can join on in this case*;
我对更简单的方法持开放态度,这个逻辑只是一个想法。
【问题讨论】:
标签: postgresql date sum pivot average