2016-11-30 43 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