bay*_*ian 2 sql snowflake-cloud-data-platform
我有一张表格,其中列出了潜在客户、他们的活动和他们的销售代表。每个客户最多可以有 1 名销售代表。我建立了一个汇总表,在其中汇总客户活动,并按销售代表对其进行分组,并按客户创建日期进行筛选。这不是一个群组(customers并非全部对应于scheduled_flights,而是给定时间段内的活动快照)它看起来像这样:
现在,除了客户总数之外,我还想输出这些实际客户的数组。该customers字段当前是通过执行sum(is_customer) as customers然后由销售代表分组来计算的。为了构建数组,我尝试执行array_agg(customer_name)which 输出所有客户名称的列表——我只需要满足条件 that 的名称列表is_customer = 1,但我不能将其用作 where 子句,因为它会过滤排除其他活动,例如为非新客户安排的和已完成的航班。
这应该可以工作:
array_agg(case when is_customer = 1 then customer_name end) within group (order by customer_name)
Run Code Online (Sandbox Code Playgroud)
Snowflake 应该忽略NULL聚合中的值。