如何根据sid获取总分?

发布于 2025-01-20 22:09:34 字数 371 浏览 4 评论 0原文

输入如下:

[
  {
    "sid": 101,
    "sname": "Rahul",
    "sem": 1,
    "marks": 9
  },
  {
    "sid": 102,
    "sname": "Rahul",
    "sem": 2,
    "marks": 9.5
  },
  {
    "sid": 102,
    "sname": "Rahul",
    "sem": 3,
    "marks": 8
  },
  {
    "sid": 101,
    "sname": "Rahul",
    "sem": 4,
    "marks": 7
  }
]

我需要根据SID属性获取标记总数。

Input is as follows:

[
  {
    "sid": 101,
    "sname": "Rahul",
    "sem": 1,
    "marks": 9
  },
  {
    "sid": 102,
    "sname": "Rahul",
    "sem": 2,
    "marks": 9.5
  },
  {
    "sid": 102,
    "sname": "Rahul",
    "sem": 3,
    "marks": 8
  },
  {
    "sid": 101,
    "sname": "Rahul",
    "sem": 4,
    "marks": 7
  }
]

I need to get the total number of marks based on the sid attribute.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

陈独秀 2025-01-27 22:09:34

您可以按SID对每个SID总和进行分组。

%dw 2.0
output application/json
---
payload 
    groupBy ($.sid) 
    mapObject ($): sum($.*marks)

输出:

{
  "101": 16,
  "102": 17.5
}

请注意,如果您要使用此信息进行进一步处理,则将输出到Application/Java而不是JSON更有效。

另外,如果您希望有一个每个SID的列表,则可以使用Pluck()。

%dw 2.0
output application/json
---
payload 
    groupBy ($.sid) 
    pluck { sid: ($), marksTotal: sum($.*marks) }

输出:

[
  {
    "sid": "101",
    "marksTotal": 16
  },
  {
    "sid": "102",
    "marksTotal": 17.5
  }
]

You can group by the sid then for each sid sum all the marks.

%dw 2.0
output application/json
---
payload 
    groupBy ($.sid) 
    mapObject ($): sum($.*marks)

Output:

{
  "101": 16,
  "102": 17.5
}

Note that if you are going to use this information for further processing it will be more efficient to output to application/java instead of JSON.

Alternatively if you prefer to have a list with one element per sid you can use pluck().

%dw 2.0
output application/json
---
payload 
    groupBy ($.sid) 
    pluck { sid: ($), marksTotal: sum($.*marks) }

Output:

[
  {
    "sid": "101",
    "marksTotal": 16
  },
  {
    "sid": "102",
    "marksTotal": 17.5
  }
]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文