如何解决在同一日期结构中显示具有不同时间轴的两个字段
在我目前在公司从事的项目中,我想在 sql/Tableau/BigQuery 上显示与销售相关的 KPI 以及客户评分指标
主键是两个表中的订单 ID。但是,订单日期和我们衡量客户评分的日期可能不同。例如,2020 年 2 月发布的订单的销售信息将在 2020 年 2 月汇总,但是如果在 2020 年 3 月进行客户调查,则客户评分指标必须在 2020 年 3 月汇总。我想要什么在关系数据库中实现的是as follows:
销售:
订单编号 | 订购日期(m/d/yyyy) | 销售额(美元) |
---|---|---|
1000 | 1/1/2021 | 1000 |
1001 | 2/1/2021 | 2000 |
1002 | 3/1/2021 | 1500 |
1003 | 4/1/2021 | 1700 |
1004 | 5/1/2021 | 1800 |
1005 | 6/1/2021 | 900 |
1006 | 7/1/2021 | 1600 |
1007 | 8/1/2021 | 1900 |
客户评分表:
订单编号 | 客户调查日期(m/d/yyyy) | 客户评分 |
---|---|---|
1000 | 3/1/2021 | 8 |
1001 | 3/1/2021 | 7 |
1002 | 4/1/2021 | 3 |
1003 | 6/1/2021 | 6 |
1004 | 6/1/2021 | 5 |
1005 | 7/1/2021 | 3 |
1006 | 9/1/2021 | 1 |
1007 | 8/1/2021 | 7 |
预期输出:
关键绩效指标 | 1 月 21 日 | 2 月 21 日 | 3 月 21 日 | 4 月 21 日 | 5 月 21 日 | 6 月 21 日 | 7 月 21 日 | 8 月 21 日 | 9 月 21 日 |
---|---|---|---|---|---|---|---|---|---|
销售额($) | 1000 | 2000 | 1500 | 1700 | 1800 | 900 | 1600 | 1900 | |
平均客户得分 | 7.5 | 3 | 5.5 | 3 | 7 | 1 |
我找不到办法做到这一点,因为订单日期和调查日期可能/可能不同。
对于示例数据和预期输出,click here。
解决方法
我认为您想要做的是在加入之前先将结果汇总到月份 (KPI),而不是在 ORDER_ID 上加入
例如:
var source = [
{
"Value1": [
"name","surname","age"
],"Value2": [
"name"
],"Value3": [
"name","age"
]
},{
"Value2": [
"name","Value3": [
"surname","name"
]
},{
"Value1": [
"hoursWorked"
],{
"Value2": [
"hoursWorked"
]
},{
"Value2": [
"age","hoursWorked"
]
},{
"Value3": [
"name","timeSpent"
]
},{
"Value3": [
"hoursWorked",{
"Value1": [
"name","hoursWorked",{
"Value1": [
"surnmae","hoursWorked"
]
}
]
var b = source.reduce((acc,val) => {
Object.keys(val).forEach(key => {
acc[key] = acc[key] ? [...new Set(acc[key].concat(val[key]))] : val[key];
})
return acc;
},{})
console.log(b)
在这里,我们根据订单日期汇总每个月的总销售额,然后根据评分提交日期汇总每个月的平均客户评分。现在我们可以在月份值上加入这两个。
结果是这样的表格:
关键绩效指标 | 销售 | avg_customer_score |
---|---|---|
2021-01-01 | 1000 | 空 |
2021-02-01 | 2000 | 空 |
2021-03-01 | 1500 | 7.5 |
2021-04-01 | 1700 | 3.0 |
2021-05-01 | 1800 | 空 |
2021-06-01 | 900 | 5.5 |
2021-07-01 | 1600 | 3.0 |
2021-08-01 | 1900 | 7.0 |
2021-09-01 | 空 | 1.0 |
您可以在 Tableau 中透视此表的结果,或利用案例语句将每个月提取到自己的列中 - 如果有帮助,我可以详细说明
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。