最终,我需要的是能够根据不同的项目比较不同的团队表现 .
我有两个数据集 . 第一个是user_table,其中包含迄今为止所有人的摘要 . 示例如下:
user_id date_added attribute_1 attribute_2 attribute_3 ...
1 2018-01-01 a a null
2 2018-01-02 b b b
3 2018-01-02 b c a
第二个数据集是一个action_table,其中包含发生的所有操作的摘要 .
timestamp user_id action_name project_name
2018-01-01 1 responded project_A
2018-01-01 1 called project_A
2018-01-01 1 responded ...
2018-01-02 1 called
2018-01-02 1 called
2018-01-03 3 attended
2018-01-04 2 responded
2018-01-05 1 attended
使用所有这些,我需要生成一个这样的表:
project_name group_name project_date group_total group_attended day_0 day_1 day_2 ...
project_A group_a 2018-01-01 200,000 15,000 1,000 2,000 3,000
project_A group_b 2018-01-01 20,000 5,000 8,000 9,000 10,000
project_A group_c 2018-01-01 30,000 6,000 9,000 10,000 12,000
project_B group_a 2018-01-08 15,000 1,000 2,000 3,000 5,000
project_B group_b 2018-01-08 20,000 5,000 8,000 9,000 10,000
project_B group_c 2018-01-08 30,000 6,000 9,000 10,000 12,000
group_name - 对具有类似属性的用户进行分组 . 属性可以来自两个表 . 例如,如果组定义是从1月2日以attribute_1作为b添加的任何人,则用户2和3将位于同一组中 .
group_total - 属于该组的用户数 . 这应包括迄今为止的总用户数,无论他们是否出现在action_table中 .
group_attended - 属于具有action_name的组的用户数,这些用户是相应的project_name .
day_0 - 属于该组的用户数,其中action_name为相应project_name的action_c,其中前一个未参加的action_name在同一天发生 . 然后随着天数差异增加直到第7天,这进展到第1天 . 这意味着到day_7,数字应始终小于或等于group_attended .
在某些情况下,用户的action_name仅为有人值守 . 在这种情况下,我们需要分配模式project_date以响应它们以获得天数差异 .