想在 N1QL 中进行数组乘法

want to array multiplication in N1QL

我有 JSON 如下所示

{
  "_type": "Usage",
  "bids": [
    {
     "bid": 0.015,
      "clicks": 13,
      "endTime": "2016-06-01T00:31:39.000Z",
     },
    {
      "bid": 0.023,
      "clicks": 1731,
      "endTime": "2016-06-01T03:08:30.000Z",
     },
    {
      "bid": 0.025,
      "clicks": 604,
      "endTime": null,
     }
  ],
  "campaignId": 2229,
}

我想在 bids 中增加点击次数和出价 但是当我 运行 下面的查询结果为空 ARRAY_SUM( ( bids[*] .clicks )*(出价[*].出价))

select campaignId,ARRAY_MAX(bids[*].startTime) date,

ARRAY_SUM(bids[*].clicks) clicks,ARRAY_SUM((bids[*].clicks)*(bids[*].bid)) total

from Default where _type="DailyCampaignUsage";

但总计为 NULL

您想为数组的每个元素乘以单独的 clicks/bid 值。请注意,bids[].clicks 会生成一组点击值,而“”是 basic/scalar 数据类型的乘法运算符。所以,试试这个:

SELECT campaignId,ARRAY_MAX(bids[*].endTime) date,
       ARRAY_SUM(bids[*].clicks) clicks, 
       ARRAY_SUM(ARRAY x.clicks * x.bid FOR x IN bids END) total
FROM default
WHERE _type="DailyCampaignUsage";

-普拉萨德