如何在条件中使用array_agg?

时间:2019-06-18 16:32:18

标签: sql snowflake

我有一张表格,其中列出了潜在客户,他们的活动和他们的销售代表。每个客户最多可以有1个销售代表。我建立了一个汇总表,其中汇总了客户活动,将其按销售代表分组,并按客户创建日期进行过滤。这不是一个队列(customers并不都与scheduled_flights相对应,而是在给定时间段内的活动快照)看起来像这样:

enter image description here

现在,除了客户总数之外,我还想输出一系列实际客户。目前,customers字段是通过执行sum(is_customer) as customers然后按销售代表分组来计算的。为了构建数组,我尝试做array_agg(customer_name),该命令输出所有客户名称的列表-我只需要满足is_customer = 1条件的名称列表,但我不能将其用作where子句,因为它会过滤掉其他活动,例如针对新客户的预定航班和已完成航班。

1 个答案:

答案 0 :(得分:2)

这可能应该起作用:

array_agg(case when is_customer = 1 then customer_name end) within group (order by customer_name)

雪花应该忽略聚合中的NULL值。