嵌套聚合函数是指在一个聚合函数的内部嵌套另一个聚合函数。在标准 SQL 的语法中是不支持嵌套聚合(需要通过子查询的形式实现)。然而,在实际的数据分析场景中, 这种需求却非常普遍。例如:
-- 日均销售额
AVG(
GROUP_SUM(order_details.quantity * order_details.unit_price, TO_DATE(orders.order_datetime))
)
-- 日均客户数量
AVG(
GROUP_COUNT(customers.customer_id, TO_DATE(orders.order_datetime))
)
数据库中存储的订单数据的时间为
-- 复购率
PERCENTAGE(
COUNT_IF(
GROUP_COUNT(
orders.order_id, customers.customer_id) > 2,
customers.customer_id
),
COUNT(customers.customer_id)
)
复购率的计算方法则比较复杂,首先需要计算出指定时间范围内的订单量大于 2 的客户的数据,再除以总的客户数量。
在实际计算中,嵌套聚合函数的处理方式是:内部聚合函数会生成一个子查询,外部聚合函数再基于该子查询的结果进行进一步聚合操作。这种结构虽然逻辑清晰, 但在传统 SQL 中实现往往需要手动书写复杂的嵌套查询。
Agile Query 提供的嵌套聚合函数大幅简化了这一过程,使得指标定义更加直观高效。通过自动处理嵌套逻辑,开发者无需手动构建复杂的子查询, 从而显著降低了指标开发的成本,同时提高了工作效率和数据分析的灵活性。这种能力特别适用于处理多层次指标计算的场景,如复杂的业务报表和高级数据分析需求。