可视化的数据 - 营收趋势每月有缺失的客户数据

我对如何处理数据,以克服一定的一个月中继客户的收入,因为他们开始业务丢失客户数据的概念问题(这是一个关键点) 。我总是需要采取的最后报告,并只显示它,否则我我增加了一倍的数据。 我展示每月收入的趋势,问题是,如果客户不告诉我们在给定月份的收入,以下月收入将不包括从上月该客户的收入。所以基本上,我试图找出如何,即使没有收入已经报道,本月会延长顾客在接下来的几个月的收入。我试图在图表中将其可视化。可视化的数据 - 营收趋势每月有缺失的客户数据

这是在数据库中的数据结构的例子:

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

回到顶部