可视化的数据 - 营收趋势每月有缺失的客户数据
我对如何处理数据,以克服一定的一个月中继客户的收入,因为他们开始业务丢失客户数据的概念问题(这是一个关键点) 。我总是需要采取的最后报告,并只显示它,否则我我增加了一倍的数据。 我展示每月收入的趋势,问题是,如果客户不告诉我们在给定月份的收入,以下月收入将不包括从上月该客户的收入。所以基本上,我试图找出如何,即使没有收入已经报道,本月会延长顾客在接下来的几个月的收入。我试图在图表中将其可视化。可视化的数据 - 营收趋势每月有缺失的客户数据
这是在数据库中的数据结构的例子:
date | customer | revenues 08/2017 A 100
08/2017 B 125
09/2017 A 200
09/2017 B 200
10/2017 A 450
10/2017 B 220
10/2017 C 180
11/2017 A 700
11/2017 C 250
当前结果:
08/2017 - total 225 - A 100, B 125 09/2017 - total 400 - A 200, B 200
10/2017 - total 850 - A 450, B 220, C 180
11/2017 - total 880 - A 700, C 180
通缉结果:
08/2017 - total 225 - A 100, B 125 09/2017 - total 400 - A 200, B 200
10/2017 - total 850 - A 450, B 220, C 180
11/2017 - total 1170 - A 700, B 220, C 180
我不知道我应该我试图使用PostgreSQL或使用可视化工具。
我怎么能自动模拟它(无论是在查看或其他方法),使应用的数据每个月包含了所有客户的最新收入(携带向前,如果数据没有为客户当月存在)。
回答:
您可以创建与PostgreSQL的这样一个查询视图。
SELECT date_t,
COALESCE(sum_a,0) + COALESCE(sum_b,0) + COALESCE(sum_c,0) Total,
SUM_A,
SUM_B,
SUM_C
FROM
(SELECT
date_t,
CASE
WHEN LAG(sum_A,1) OVER (ORDER BY date_t) IS NOT NULL
AND sum_A IS NULL
THEN LAG(sum_A,1) OVER (ORDER BY date_t)
ELSE sum_A
END SUM_A,
CASE
WHEN LAG(sum_B,1) OVER (ORDER BY date_t) IS NOT NULL
AND sum_B IS NULL
THEN LAG(sum_B,1) OVER (ORDER BY date_t)
ELSE sum_B
END SUM_B,
CASE
WHEN LAG(sum_C,1) OVER (ORDER BY date_t) IS NOT NULL
AND sum_C IS NULL
THEN LAG(sum_C,1) OVER (ORDER BY date_t)
ELSE sum_C
END SUM_C
FROM
(select
date_t,
SUM (CASE
WHEN customer = 'A'
THEN revenues
END) sum_A,
SUM (CASE
WHEN customer = 'B'
THEN revenues
END) sum_B,
SUM (CASE
WHEN customer = 'C'
THEN revenues
END) sum_C
FROM
yourtable
GROUP BY
date_t
) s1
) s2
ORDER BY
date_t;
DEMO
的LAG()
功能检查前一行 - 你的情况的总和。
以上是 可视化的数据 - 营收趋势每月有缺失的客户数据 的全部内容, 来源链接: utcz.com/qa/260178.html