具有重叠时间间隔的聚合的时间序列图

时间:2019-09-26 15:36:54

标签: google-data-studio

我的数据集具有以下形式:

Start Date  End Date    Count Contact
2019-01-20  2019-05-10  50        A
2019-03-05  2019-06-07  20        A
2019-03-05  2019-06-07  20        B
....

我想要一个时序图,其中X轴为月,Y轴为总数。

例如 条目将是

Month TotalCount Contact
Jan     50          A
Jan      0          B
Feb     50          A
Feb      0          B
Mar     70          A
Mar     20          B
Apr     70          A
Apr     20          B
May     70          A
May     20          B
Jun     20          A
Jun     20          B
Jul      0          A
Jul      0          B
...

如何在Data Studio中实现此目标?数据来自bigquery。

1 个答案:

答案 0 :(得分:0)

如果不先操作数据集,就无法单独在Data Studio中以视觉方式进行操作。

您可以改为使用自定义查询来生成日期范围为月开始的日期(https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#generate_date_array),然后将数据集中月份开始的日期或开始日期与结束日期之间的所有行连接起来。

示例代码

WITH CTE AS (
SELECT date('2019-01-20') start_date,  date('2019-05-10') end_date,  50 count, 'A' contact
UNION ALL SELECT date('2019-03-05'), date('2019-06-07'), 20, 'A'
UNION ALL SELECT date('2019-03-05'), date('2019-06-07'), 20, 'B'
), monthDates AS (

SELECT months FROM
UNNEST(GENERATE_DATE_ARRAY('2019-01-01', '2019-07-01', INTERVAL 1 MONTH)) months
), monthContact AS (

SELECT months, contact
FROM monthDates m
CROSS JOIN CTE
GROUP BY 1,2
)

SELECT months, ifnull(sum(count),0) count, m.contact
FROM monthContact m
LEFT JOIN CTE c ON m.months BETWEEN start_date AND end_date AND m.contact = c.contact
GROUP BY 1,3
ORDER BY 1,3