有条件的ARRAY_SUM

时间:2019-04-29 15:28:10

标签: couchbase n1ql

我有这样的文件

# run entrypoint.sh
ENTRYPOINT ["/usr/src/my_app/entrypoint.sh"]

我想根据id属性进行总价值的DISTINCT SUM,但在这种情况下找不到并指示。

在示例情况下,预期总数为30.0。

2 个答案:

答案 0 :(得分:2)

答案 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 ......