对于不完整的数据集,我需要执行聚合函数,同时避免为同一个表中的特定聚合函数设置null。例如,我尝试将其放入子查询中:
WITH spend AS (
SELECT
(SUM(current_spend)-SUM(baseline_spend))/SUM(baseline_spend) percent_change_spend
FROM
`table_one`
WHERE
baseline_spend IS NOT NULL
),
sales AS (
SELECT
(SUM(current_sales)-SUM(baseline_sales))/SUM(baseline_sales) percent_change_sales
FROM
`table_one`
WHERE
baseline_sales IS NOT NULL
)
SELECT
percentage_change_spend,
percentage_change_sales
FROM
table_one ...
我不能使用常规查询作为应用程序 WHERE baseline_spend IS NOT NULL
或者 baseline_sales IS NOT NULL
会影响两个聚合函数,因为它首先过滤整个数据集。
有什么建议吗?谢谢!
编辑:
例如,我希望在聚合时,spend聚合只忽略第4行,sales聚合只忽略第2行
我希望最终结果是:
1条答案
按热度按时间nr9pn0ug1#
聚合函数忽略
NULL
所以这应该是你想要的: