我们的数据仓库中有两个表:c_customers和h_customers,包含当前和历史客户记录。统计关键日期的历史记录
两个表有一个c_customers 'DWH_FROM' 和 'DWH_TO' 专栏,所有记录有 'DWH_TO'= NULL。
的PK c_customers是CUST_NR,而对于h_customers它的CUST_NR,DWH_FROM和DWH_TO。
当客户数据发生变化时,会将新记录插入到c_customers中,并带有空白DWH_TO值,而旧记录将移至带有包含更改发生日期的DWH_TO的h_customers。
我怎么能得到多少客户(不同CUST_NR)有STATUS =“活动”作为第一个2016年每月的,或者用于在2016年每日期列表?
理想的输出会是这样的:
Date | Count
-----------+------
01.01.2016 | 22385
01.02.2016 | 23187
... |
01.12.2016 | 25109
我就来为生成数据集:
SELECT *
FROM (SELECT CUST_NR,
STATUS,
DWH_FROM,
DWH_TO
FROM C_CUSTOMER C
UNION ALL
SELECT CUST_NR,
STATUS,
DWH_FROM,
DWH_TO
FROM H_CUSTOMER H
);
...但我真的不知道怎么算客户在某个日期,多个日期。
你想分享你有什么迄今所做,输入表格等的样本数据? –
假设特定客户在历史表中不会有**重叠间隔是否公平?他们可能会出现不止一次,但不会超过一次*在同一日期*? (与他们目前的记录没有重叠 - 所以他们不会在同一天的两个表中) – mathguy
这是正确的。 – igneous