我有以下格式的数据。我很难计算特定日期所有产品的特定商品或品牌的利润百分比。
Date Item Brand Profit
15-08-2019 A Nike 5
15-08-2019 B Nike 10
15-08-2019 C Nike 12
15-08-2019 D Nike 6
15-08-2019 E Nike 9
15-08-2019 F Adidas 4
15-08-2019 G Adidas 3
15-08-2019 H Adidas 7
16-08-2019 A Nike 8
16-08-2019 B Nike 4
16-08-2019 C Nike 6
16-08-2019 D Nike 7
16-08-2019 E Nike 9
16-08-2019 F Adidas 5
16-08-2019 G Adidas 4
16-08-2019 H Adidas 9
我需要在单个查询中进行此计算。 如果我们将其分为两个部分运行,则第一个查询将使用日期和维度过滤器获取数据,第二个查询将仅使用日期过滤器获取数据。然后我将把这两个分开。 无法找到一种将它们组合到一个查询中并进行计算的方法。
答案 0 :(得分:1)
可以使用过滤后的aggregation来计算特定商品或品牌的利润百分比。
对于品牌“ Nike”,可以使用以下json:
{
"queryType": "timeseries",
"dataSource": <your_datasource>,
"granularity": "day",
"aggregations": [
{
"type" : "filtered",
"filter" : {
"type" : "selector",
"dimension" : "Brand",
"value" : "Nike"
},
"aggregator" : {
"type" : "longSum",
"name" : "brand_sum",
"fieldName" : "Profit"
}
},
{ "type": "longSum", "name": "total_sum", "fieldName": "Profit" }
],
"postAggregations": [
{ "type": "arithmetic",
"name": "average_profit",
"fn": "/",
"fields": [
{ "type": "fieldAccess", "name": "brand_sum", "fieldName": "brand_sum" },
{ "type": "fieldAccess", "name": "total_sum", "fieldName": "total_sum" }
]
}
],
"intervals": [ "15-08-2019/16-08-2019" ]
}
它将给出特定品牌(此处为“ Nike”)在全天(此处为15日和16日)的平均利润。