我有这样的文件
# run entrypoint.sh
ENTRYPOINT ["/usr/src/my_app/entrypoint.sh"]
我想根据id属性进行总价值的DISTINCT SUM,但在这种情况下找不到并指示。
在示例情况下,预期总数为30.0。
答案 0 :(得分:2)
使用ARRAY运算符选择要使用的数组元素。
https://docs.couchbase.com/server/6.0/n1ql/n1ql-language-reference/collectionops.html#array
然后使用ARRAY_DISTINCT()和ARRAY_SUM()计算总数。
https://docs.couchbase.com/server/6.0/n1ql/n1ql-language-reference/arrayfun.html#fn-array-distinct https://docs.couchbase.com/server/6.0/n1ql/n1ql-language-reference/arrayfun.html#fn-array-sum
答案 1 :(得分:1)
当“ id”:“ 1”具有不同的值时选择哪个
{
bills: [
{
id: "1",
total: 20.0
},
{
id: "1",
total: 30.0
},
{
id: "2",
total: 10.0
}
]
}
通过使用子查询表达式https://docs.couchbase.com/server/6.0/n1ql/n1ql-language-reference/subqueries.html,您可以使用数组的完整选择功能。
如果值不同,以下查询将使用MAX。这是每个文件的总金额
SELECT ARRAY_SUM((SELECT RAW MAX(b.total) FROM d.bills AS b GROUP BY b.id)) AS s
FROM default AS d
WHERE ......