2016-11-30 42 views
1

我JSON像下面要阵列乘法N1QL

{ 
    "_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, 
} 

我想乘法点击并出价的投标里面可是当我运行下面的查询其结果是空ARRAY_SUM((报价[*] .clicks)*(出价[*] .bid))

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

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

from Default where _type="DailyCampaignUsage"; 

但是Total total NULL

回答

2

您希望为数组中的每个元素乘以单独的点击次数/出价值。请注意,出价[] .clicks会产生一组点击值,''是基本/标量数据类型的乘法运算符。所以,试试这个:

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"; 

-prasad