由于 R 中的数据集大小而需要聚合时如何访问未聚合结果

How to access unaggregated results when aggregation is needed due to dataset size in R

我的任务是获取一组客户的总入站线索、同一组客户的月度线索以及这些线索的转化率。

我从中提取的数据集有 2000 万条记录,所以我无法查询全部内容。我已成功完成第一步(通过以下方式获取每个组织的总潜在客户数:

inbound_leads <- domo_get_query('6d969e8b-fe3e-46ca-9ba2-21106452eee2',
                                auto_limit = TRUE,
                                query = "select org_id,
                                          COUNT(*)
                                        from table
                                            GROUP BY org_id
                                            ORDER BY org_id"

DOMO 是我从中提取的双向工具,domo_get_query 是我公司构建的自定义库中的内部函数。它需要一个查询参数,这是一个 mysql 查询)和其他各种现在不重要的参数。

示例数据如下所示:

    org_id, inserted_at, lead_converted_at
    1       10/17/2021    2021-01-27T03:39:03
    2       10/18/2021    2021-01-28T03:39:03
    1       10/17/2021    2021-01-28T03:39:03
    3       10/19/2021    2021-01-29T03:39:03
    2       10/18/2021    2021-01-29T03:39:03

我浏览了许多聚合在线教程,但其中 none 似乎讨论了如何获取预聚合所需的数据(例如每个组织每月的潜在客户数量,这一次是不可能的发生聚合是因为在上面的示例中,聚合会从需要聚合以便首先访问的数据集中删除查看多个 org_id 1 实例的能力。也许我只是不太了解这一点,无法知道要问的正确问题。任何方向表示赞赏。

如果您无法将数据放入内存,您有几种选择。您可以分批处理数据(即一次处理一年),使其适合内存。您可以使用像 chunked 这样的软件包来提供帮助。

但在这种情况下,我敢打赌处理您的问题的最简单方法是在您的 SQL 查询中完全解决它。要按月获取潜在客户,您需要截断日期列并按 org_id、月

分组

要获得那些月份的潜在客户转化率,您可以添加一列(除了您的计数列之外),类似于:

sum(case when conversion_date is not null then 1 else 0) as convert_count