gpt4 book ai didi

javascript - 在 Druid 查询中使用 Javascript 聚合

转载 作者:行者123 更新时间:2023-12-01 01:53:47 25 4
gpt4 key购买 nike

我正在尝试为我的德鲁伊查询编写 javascript 聚合器。我需要计算指标“Base_SalesRank”的平均值。
到目前为止,我已经能够通过以下方式做到这一点:

 {
"queryType": "groupBy",
"dataSource": "marketdata",
"granularity": "all",

"dimensions" : ["Item"],
"filter": { "type": "and", "fields" : [{"type": "selector", "dimension": "Item", "value": "MN10CESWW"}]},
"intervals": ["2018-06-28T00:00Z/2018-07-04T00:00Z"],
"aggregations" : [
{ "type" : "count", "name" : "rows" },
{ "type" : "doubleSum", "name" : "Base_SalesRank", "fieldName" : "Base_SalesRank" }
],
"postAggregations" : [{
"type": "javascript",
"name": "Target DOS Average",
"fieldNames": ["Base_SalesRank", "rows"],
"function": "function(Base_SalesRank, rows) {return Base_SalesRank/ rows;}"
}]
}

但我注意到 Base_SalesRank 中的许多值都是 0。

[ { 
"timestamp" : "2018-06-28T05:06:03.000Z",
"result" : {
"pagingIdentifiers" : {
"marketdata_2018-06-28T00:00:00.000Z_2018-06-29T00:00:00.000Z_2018-07-06T08:11:02.499Z" : 3
},
"dimensions" : [ "Item" ],
"metrics" : [ "Base_SalesRank" ],
"events" : [ {
"segmentId" : "marketdata_2018-06-28T00:00:00.000Z_2018-06-29T00:00:00.000Z_2018-07-06T08:11:02.499Z",
"offset" : 0,
"event" : {
"timestamp" : "2018-06-28T07:10:02.000Z",
"Item" : "MN10CESWW",
"Base_SalesRank" : 0
}
},
{
"segmentId" : "marketdata_2018-06-28T00:00:00.000Z_2018-06-29T00:00:00.000Z_2018-07-06T08:11:02.499Z",
"offset" : 3,
"event" : {
"timestamp" : "2018-06-28T07:20:21.000Z",
"Item" : "MN10CESWW",
"Base_SalesRank" : 5558
}
} ]
}
} ]

所以我没有得到真正的平均值。现在我需要清除这些 0 值,然后计算平均值。我们可以通过使用过滤器来做到这一点

{"type": "not", "field": {"type": "selector", "dimension": "Base_SalesRank", "value": "0"}}

但我有一个限制,即我必须仅在 javascript 函数内执行此过滤操作。

最佳答案

只需添加一个查询即可实现相同的效果 -

"having": {
"type": "greaterThan",
"aggregation": "Base_SalesRank",
"value": 0
}

如果你想在 javascript 函数中做同样的事情,可以按如下方式完成 -

  1. 您应该在预提取 json 数据期间添加一个维度(键/值),将“isValid”设置为“0”或“1”,具体取决于 Base_SalesRank 是否为 0,否则“isValid”将为 0,否则为 1。
  2. 在查询中对此字段应用过滤器。

  3. 使用帖子聚合中的行。

关于javascript - 在 Druid 查询中使用 Javascript 聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51207451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com