如何在 cosmos-db 中的数组列上使用聚合函数
How to use an aggregate function on an array column in cosmos-db
我有一个 cosmos 项目:-
{
"id": "123,
"meta": "ancdkjlerlh"
"reason": [
"reason1",
"reason2"
],
"status": "REJECTED"
}
我需要找到每个原因的项目数。
我试过这样的方法:-
SELECT count(1) as CountOfRejected,
c.reason
FROM c
WHERE c.status= "REJECTED"
GROUP BY c.reason
将整个原因数组视为一个整体。
ARRAY_CONTAINS 方法需要在 GROUP BY 子句中使用第二个参数,我认为这一次需要 1 个原因。有没有办法像 SQL 那样在单个查询中执行此操作?
我想要这种格式的结果
Reason | CountOfRejected |
--------------------------
Reason 1 | 10
Reason 2 | 5
Reason 3 | 7
您可以使用以下SQL:
SELECT
COUNT(r) as CountOfRejected,r as Reason
FROM c JOIN r IN c.reason
WHERE c.status= "REJECTED"
GROUP BY r
结果:
[
{
"CountOfRejected": 1,
"Reason": "reason3"
},
{
"CountOfRejected": 1,
"Reason": "reason2"
},
{
"CountOfRejected": 2,
"Reason": "reason1"
}
]
我有一个 cosmos 项目:-
{
"id": "123,
"meta": "ancdkjlerlh"
"reason": [
"reason1",
"reason2"
],
"status": "REJECTED"
}
我需要找到每个原因的项目数。
我试过这样的方法:-
SELECT count(1) as CountOfRejected,
c.reason
FROM c
WHERE c.status= "REJECTED"
GROUP BY c.reason
将整个原因数组视为一个整体。 ARRAY_CONTAINS 方法需要在 GROUP BY 子句中使用第二个参数,我认为这一次需要 1 个原因。有没有办法像 SQL 那样在单个查询中执行此操作? 我想要这种格式的结果
Reason | CountOfRejected |
--------------------------
Reason 1 | 10
Reason 2 | 5
Reason 3 | 7
您可以使用以下SQL:
SELECT
COUNT(r) as CountOfRejected,r as Reason
FROM c JOIN r IN c.reason
WHERE c.status= "REJECTED"
GROUP BY r
结果:
[
{
"CountOfRejected": 1,
"Reason": "reason3"
},
{
"CountOfRejected": 1,
"Reason": "reason2"
},
{
"CountOfRejected": 2,
"Reason": "reason1"
}
]