【发布时间】:2020-08-04 03:15:58
【问题描述】:
编写一个查询的最佳方法是在 redshift 上对不同离散时间范围内的不同计数进行汇总?
例如,如果您为各个组织的潜在客户收集了一些电话号码,并想了解每周、每月、每季度等创建了多少不同的电话号码......最好的方法是什么?
这是我能想到的最好的:
SELECT
organization,
sum(weekly) as weekly,
sum(monthly) as monthly,
sum(quarterly) as quarterly,
sum(yearly) as yearly
FROM (
SELECT
organization,
COUNT(DISTINCT phoneNumber) as weekly,
null as monthly,
null as quarterly,
null as yearly
FROM Lead
WHERE createdAt >= current_date - interval '7 days'
GROUP BY organization
UNION ALL
SELECT
organization,
null as weekly,
COUNT(DISTINCT phoneNumber) as monthly,
null as quarterly,
null as yearly
FROM Lead
WHERE createdAt >= current_date - interval '1 month'
GROUP BY organization
UNION ALL
SELECT
organization,
null as weekly,
null as monthly,
COUNT(DISTINCT phoneNumber) as quarterly,
null as yearly
FROM Lead
WHERE createdAt >= current_date - interval '3 months'
GROUP BY organization
UNION ALL
SELECT
organization,
null as weekly,
null as monthly,
null as quarterly,
COUNT(DISTINCT phoneNumber) as yearly
FROM Lead
WHERE createdAt >= current_date - interval '1 year'
GROUP BY organization
) GROUP BY organization
有什么方法可以让查询更快/更容易理解?
【问题讨论】:
-
样本数据和期望的结果将更有可能回答您的问题。
标签: sql amazon-redshift distinct rollup